Title: | Vaccine Phase I Design with Simultaneous Evaluation of Immunogenicity and Toxicity |
---|---|
Description: | Phase I clinical trials are the first step in drug development to test a new drug or drug combination on humans. Typical designs of Phase I trials use toxicity as the primary endpoint and aim to find the maximum tolerable dosage. However, these designs are poorly applicable for the development of cancer therapeutic vaccines because the expected safety concerns for these vaccines are not as much as cytotoxic agents. The primary objectives of a cancer therapeutic vaccine phase I trial thus often include determining whether the vaccine shows biologic activity and the minimum dose necessary to achieve a full immune or even clinical response. This package implements a Bayesian Phase I cancer vaccine trial design that allows simultaneous evaluation of safety and immunogenicity outcomes. See Wang et al. (2019) <DOI:10.1002/sim.8021> for further details. |
Authors: | Zilu Wang [aut, cre] Chenguang Wang [aut, cre] Gary L Rosner [aut] Richard BS Roden [aut] Trustees of Columbia University [cph] (tools/make_cpp.R, R/stanmodels.R) |
Maintainer: | Chenguang Wang <[email protected]> |
License: | GPL (>= 3) |
Version: | 2.2 |
Built: | 2024-12-25 07:02:01 UTC |
Source: | CRAN |
This package contains the functions for implementing the visit design for Phase I cancer vaccine trials.
Phase I clinical trials are the first step in drug development to apply a new drug or drug combination on humans. Typical designs of Phase I trials use toxicity as the primary endpoint and aim to find the maximum tolerable dosage. However, these designs are generally inapplicable for the development of cancer vaccines because the primary objectives of a cancer vaccine Phase I trial often include determining whether the vaccine shows biologic activity.
The visit design allows dose escalation to simultaneously account for immunogenicity and toxicity. It uses lower dose levels as the reference for determining if the current dose level is optimal in terms of immune response. It also ensures subject safety by capping the toxicity rate with a given upper bound. These two criteria are simultaneously evaluated using an intuitive decision region that avoids complicated safety and immunogenicity trade-off elicitation from physicians.
There are several considerations that are clinically necessary for developing the design algorithm. First, we assume that there is a non-decreasing relationship that exists between toxicity and dosage, i.e., the toxicity risk does not decrease as dose level increases. Second, the immune response rate may reach a plateau or even start to decline as the dose level increases.
For subject , let
(
) denote the received
dose level,
if any DLT event is observed from the subject and
otherwise,
if immune response is achieved for the subject
and
otherwise.
Let for
,
and
. Furthermore, for dose level
, let
be the DLT risk,
be the immune
response probability, and
be the odds ratio. Let
be the observed number of subjects
with
and
at dose level
,
and
denote all the data
observed by the time the current analysis is conducted.
The dose escalation algorithm is based on the posterior probability
distribution of , where
and
represent the DLT risk and immune response rate, respectively,
of the current dose level
, and
denotes the cumulative data at
the time of interim analysis.
Let denote the lower boundary of DLT risk below which the dose is
considered absolutely safe,
denote the upper boundary of DLT risk
above which the dose is considered toxic. visit implements a sequential
identification approach based on conditional probabilities derived from
. Let
be fixed cut-off
values in
. The steps are as follows:
If , then the current dose level is
considered to be too toxic. The trial should be stopped and the next lower
dose level should be reported as the recommended dose.
, then the
current dose level is considered to be no more effective than its lower dose
levels. The trial should be stopped and the next lower dose level should be
reported as the recommended dose.
If , then the current dose level is considered to be safe and
effective. The trial will escalate to dose level
.
The current dose level is considered to be uncertain. The
trial should continue to treat more patients at dose level .
The values of should be chosen prior to study initiation
and reflect the considerations of the investigators and patients. These
thresholds should also give reasonable overall study operating
characteristics.
We can see that, based on the posterior distribution of , the currently dose level is in one of the four regions:
1: too toxic, 2: no more effective than its lower dose,
3: safe and effective, and 4: uncertain. These regions are termed
as a
Decision Map
.
visit provides several options for the probability models that can be considered for Bayesian inference. The models are non-decreasing with respect to the dose-toxicity relationship and avoid monotonic assumptions for the dose-immune response curve.
As one of the simplest models, we posit
no assumptions on the dose-toxicity or dose-immune response relationships and
assume the outcome data follow a
multinomial distribution.
This is the simplified
non-parametric model with the odds ratios .
Compared to non-parametric models, a parametric model may allow the incorporation of dose-toxicity, dose-efficacy, and toxicity-efficacy relationships in dose escalation. In the context of evaluating cancer vaccines, however, it is difficult to posit assumptions on the dose-efficacy relationship, since the immune response rate may even decrease as the dose level increases. On the other hand, it remains reasonable to assume that the dose-toxicity curve is non-decreasing. Therefore, we propose a partially parametric model that only makes assumptions about dose-toxicities but leaves the dose-immune response relationship unspecified.
Specifically, we construct the dose-toxicity model as:
The 's are deterministic design
parameters reflecting the expectation of the DLT risk at dose level
with
for
.
For the immune response and the odds ratio, we assume and
at different dose levels are independent a priori.
This is the simplified
partially parametric model with the odds ratios .
This package provides a web-based graphical user interface developed using R
Shiny. See vtShiny
for details.
Wang, C., Rosner, G. L., & Roden, R. B. (2019). A Bayesian design for phase I cancer therapeutic vaccine trials. Statistics in medicine, 38(7), 1170-1189.
Parameters that are shared by multiple functions
obs.y |
Observed data matrix with
|
prob.mdl |
Option of the probability models:
Default value is |
priors |
A class |
etas |
Vector of length 2 representing |
prev.res |
Response rate from the next lower dose level, say, |
dec.cut |
Thresholds |
digits |
Digits for print |
seed |
Random seed |
... |
Reserved parameters |
Plot a decision map based on a class VTDEC
object that contains the
current posterior analysis results
## S3 method for class 'VTDEC' plot(x, margin = 0.003, nms = c("TT", "NME", "SE", "UN"), col.reg = "pink", col.prob = "blue", cex.prob = 0.9, cex.nms = 1, ...)
## S3 method for class 'VTDEC' plot(x, margin = 0.003, nms = c("TT", "NME", "SE", "UN"), col.reg = "pink", col.prob = "blue", cex.prob = 0.9, cex.nms = 1, ...)
x |
A class |
margin |
Margin between regions in the decision map |
nms |
Labels of the regions on a decision map. Defaults are:
|
col.reg |
Background color of the selected region |
col.prob |
Text color of the selected region. |
cex.prob |
Text size of the probabilities |
cex.nms |
Text size of the region labels |
... |
Optional arguments for |
etas <- c(0.1, 0.3) dec.cut <- c(0.6,0.6,0.6) cur.obs.y <- c(3, 2, 1, 1) prev.obs.y <- c(5, 2, 0, 0) rst.inter <- vtInterim(cur.obs.y, prev.obs.y = prev.obs.y, prob.mdl = "NONPARA", etas = etas, dec.cut = dec.cut, nsmp = 2000); plot(rst.inter)
etas <- c(0.1, 0.3) dec.cut <- c(0.6,0.6,0.6) cur.obs.y <- c(3, 2, 1, 1) prev.obs.y <- c(5, 2, 0, 0) rst.inter <- vtInterim(cur.obs.y, prev.obs.y = prev.obs.y, prob.mdl = "NONPARA", etas = etas, dec.cut = dec.cut, nsmp = 2000); plot(rst.inter)
Plot true DLT risk rates and response rates.
## S3 method for class 'VTTRUEPS' plot(x, draw.levels = NULL, draw.curves = 1:6, legends = NULL, ltys = c(1, 1, 2, 2, 2, 2), pch = 19:24, ylim = c(0, 1), cols = c("red", "blue", "brown", "black", "gray", "green"), add.legend = TRUE, ...)
## S3 method for class 'VTTRUEPS' plot(x, draw.levels = NULL, draw.curves = 1:6, legends = NULL, ltys = c(1, 1, 2, 2, 2, 2), pch = 19:24, ylim = c(0, 1), cols = c("red", "blue", "brown", "black", "gray", "green"), add.legend = TRUE, ...)
x |
A class |
draw.levels |
Select dose levels to draw. Default |
draw.curves |
Indicate which curves to plot. The options are
See |
legends |
Line legends |
ltys |
Line types |
pch |
Line PCH |
ylim |
Y limits |
cols |
Line colors |
add.legend |
Include legends (TRUE) or not (FALSE) |
... |
optional arguments for plot |
rst.sce <- vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1) plot(rst.sce, draw.levels = 1:2, draw.curves=1:6)
rst.sce <- vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1) plot(rst.sce, draw.levels = 1:2, draw.curves=1:6)
Summarize the simulation results with numerous statistical measures
## S3 method for class 'VTSIMU' summary(object, ...)
## S3 method for class 'VTSIMU' summary(object, ...)
object |
A class |
... |
Reserved parameters |
A list containing
dose: Frequency for each dose level being selected as the optimal dose level
npat: Average number of patients for each cohort and each dose level
samples: Average number of DLT risks and responses for each cohort on each dose level
decision: Frequency each region in the decision map is selected for each cohort on each dose level
prob: Average conditional probabilities corresponding to each region in the decision map for each cohort on each dose level
ptox: Mean and credible interval of DLT risk rates for each cohort on each dose level
pres: Mean and credible interval of immune response rates for each cohort on each dose level
rst.sce <- vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1) rst.simu <- vtSimu(n.rep = 50, n.cors = 2, trueps = rst.sce, size.cohort=3, size.level=12, prob.mdl="NONPARA"); sum.simu <- summary(rst.simu)
rst.sce <- vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1) rst.simu <- vtSimu(n.rep = 50, n.cors = 2, trueps = rst.sce, size.cohort=3, size.level=12, prob.mdl="NONPARA"); sum.simu <- summary(rst.simu)
Print the true probabilities, with probabilities of toxicity and resistance,
and .
## S3 method for class 'VTTRUEPS' summary(object, digits = 2, ...)
## S3 method for class 'VTTRUEPS' summary(object, digits = 2, ...)
object |
A class |
digits |
Digits for print |
... |
Reserved parameters |
A table showing the summary of the VTTRUEPS
object. The first
four columns are individual probability, fifth and sixth are probability
for toxicity and resistance, and seventh is rho, the correlation.
rst.sce <- vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1) summary(rst.sce)
rst.sce <- vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1) summary(rst.sce)
S3 Summary function
summary2(x, ...)
summary2(x, ...)
x |
object |
... |
reserved parameters |
Summarize simulation results to get the frequency of a dose level is identified as the optimal dose level and the number of DLT's and responses
## S3 method for class 'VTSIMU' summary2(x, ...)
## S3 method for class 'VTSIMU' summary2(x, ...)
x |
A class |
... |
Reserved parameters |
A numeric array that shows 1: number of times each level is selected, 2. total number of times any level is selected, 3. frequency each level is selected, 4. frequency any level is selected, 5. average number of DLT's and responders for each level, 6. average total number of DLT's and responders
rst.sce <- vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1) rst.simu <- vtSimu(n.rep = 20, n.cors = 2, trueps = rst.sce, size.cohort=3, size.level=12, prob.mdl="NONPARA"); sum.simu <- summary2(rst.simu)
rst.sce <- vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1) rst.simu <- vtSimu(n.rep = 20, n.cors = 2, trueps = rst.sce, size.cohort=3, size.level=12, prob.mdl="NONPARA"); sum.simu <- summary2(rst.simu)
Print the true probabilities, with probabilities of toxicity and resistance,
and , in latex format
## S3 method for class 'VTTRUEPS' summary2(x, rp2d = -1, digits = 2, ...)
## S3 method for class 'VTTRUEPS' summary2(x, rp2d = -1, digits = 2, ...)
x |
A class |
rp2d |
Columns to be in bold font |
digits |
Digits for print |
... |
Reserved parameters |
A summary of the true probabilities in latex format.
rst.sce <- vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1) ltx.ps <- summary2(rst.sce)
rst.sce <- vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1) ltx.ps <- summary2(rst.sce)
Summarize the posterior distribution of and get
information for making dose escalation decisions
vtDecMap(thetas, etas, prev.res = 0, dec.cut = 0.6)
vtDecMap(thetas, etas, prev.res = 0, dec.cut = 0.6)
thetas |
Posterior samples of |
etas |
Vector of length 2 representing |
prev.res |
Response rate from the next lower dose level, say, |
dec.cut |
Thresholds |
This function summarizes the posterior distribution of the
and sequentially get the conditional probabilities of
each decision map region. See
visit
for details of the
decision map regions.
A class VTDEC
list. See the return value from vtInterim
for details.
etas <- c(0.1, 0.3) dec.cut <- c(0.6,0.6,0.6) obs.y <- rbind(c(5, 2, 0, 0)) rst.post <- vtPost(obs.y, prob.mdl = "NONPARA", nsmp = 2000) dec.map <- vtDecMap(rst.post, etas = etas, dec.cut = dec.cut)
etas <- c(0.1, 0.3) dec.cut <- c(0.6,0.6,0.6) obs.y <- rbind(c(5, 2, 0, 0)) rst.post <- vtPost(obs.y, prob.mdl = "NONPARA", nsmp = 2000) dec.map <- vtDecMap(rst.post, etas = etas, dec.cut = dec.cut)
Conduct an interim analysis for determining dose escalation actions
vtInterim(cur.obs.y, prev.obs.y = NULL, prev.res = NULL, etas = c(0.1, 0.3), dec.cut = 0.65, priors = NULL, prob.mdl = c("NONPARA", "NONPARA+", "PARA", "PARA+"), seed = NULL, ...)
vtInterim(cur.obs.y, prev.obs.y = NULL, prev.res = NULL, etas = c(0.1, 0.3), dec.cut = 0.65, priors = NULL, prob.mdl = c("NONPARA", "NONPARA+", "PARA", "PARA+"), seed = NULL, ...)
cur.obs.y |
Observed data from the current level, which is a vector of
length 4. The numbers correspond to |
prev.obs.y |
Observed data from previous levels, which has the same
structure as |
prev.res |
Response rate from the next lower dose level, say, |
etas |
Vector of length 2 representing |
dec.cut |
Thresholds |
priors |
A class |
prob.mdl |
Option of the probability models:
Default value is |
seed |
Random seed |
... |
Additional arguments for |
Using data from previous levels and the current level to conduct Bayesian
analysis, get the decision map information and make decision about dose
escalation actions. The actions include stop the trial, escalate to the next
higher dose level, or enroll more patients in the current level. See visit
for details.
A class VTDEC
list containing
prob: Probabilities of each decision map region
region: The region selected based on the sequential procedure described in visit
ptox: Mean risk of DLT,
pres: Mean immune response rate,
con.prob: Conditional probabilities of each decision map region
prev.res: Function parameter
etas: Function parameter
dec.cut: Function parameter
etas <- c(0.1, 0.3) dec.cut <- c(0.6,0.6,0.6) cur.obs.y <- c(3, 2, 1, 1) prev.obs.y <- c(5, 2, 0, 0) rst.inter <- vtInterim(cur.obs.y, prev.obs.y = prev.obs.y, prob.mdl = "NONPARA", etas = etas, dec.cut = dec.cut, nsmp = 2000);
etas <- c(0.1, 0.3) dec.cut <- c(0.6,0.6,0.6) cur.obs.y <- c(3, 2, 1, 1) prev.obs.y <- c(5, 2, 0, 0) rst.inter <- vtInterim(cur.obs.y, prev.obs.y = prev.obs.y, prob.mdl = "NONPARA", etas = etas, dec.cut = dec.cut, nsmp = 2000);
Call STAN to draw posterior samples of the joint distribution of immunogenicity rate and toxicity risk
vtPost(obs.y, prob.mdl = c("NONPARA", "NONPARA+", "PARA", "PARA+"), priors = NULL, ..., nsmp = 4000, prior.const = 0.5)
vtPost(obs.y, prob.mdl = c("NONPARA", "NONPARA+", "PARA", "PARA+"), priors = NULL, ..., nsmp = 4000, prior.const = 0.5)
obs.y |
Observed data matrix with
|
prob.mdl |
Option of the probability models:
Default value is |
priors |
A class |
... |
additional parameters for package rstan's sampling method. These
options include |
nsmp |
number of iterations |
prior.const |
Specify |
A class VTPOST
matrix of posterior samples with nsmp
rows and 4 columns. Columns 1-4 correspond to. See
visit
for details about 's.
obs.y <- rbind(c(5, 2, 0, 0), c(3, 4, 0, 0), c(1, 6, 0, 0)) prior <- vtPriorPar(prior.y = NULL, tau = c(0.1, 0.3, 0.6), sdalpha=10, sdrho=10, vtheta=NULL) rst.post <- vtPost(obs.y, priors = prior, warmup = 100, prob.mdl = "PARA", nsmp = 200)
obs.y <- rbind(c(5, 2, 0, 0), c(3, 4, 0, 0), c(1, 6, 0, 0)) prior <- vtPriorPar(prior.y = NULL, tau = c(0.1, 0.3, 0.6), sdalpha=10, sdrho=10, vtheta=NULL) rst.post <- vtPost(obs.y, priors = prior, warmup = 100, prob.mdl = "PARA", nsmp = 200)
Get prior distribution parameters for partially parametric or partially parametric+ models
vtPriorPar(prior.y = NULL, tau = NULL, sdalpha = 10, sdrho = 10, vtheta = NULL)
vtPriorPar(prior.y = NULL, tau = NULL, sdalpha = 10, sdrho = 10, vtheta = NULL)
prior.y |
Historical data for generating prior parameters. It has the
same structure as |
tau |
Vector of |
sdalpha |
|
sdrho |
|
vtheta |
Additional variance term for eliciting prior parameters from
|
The priors are specified as ,
and
.
A VTPRIOR
list with
TAU:vector of 's for each level
ABCD:A matrix of 4 columns: ,
,
,
. Each row represents a dose level.
par.prior <- vtPriorPar(tau = c(0.2, 0.4, 0.6), sdalpha = 10);
par.prior <- vtPriorPar(tau = c(0.2, 0.4, 0.6), sdalpha = 10);
Simulation function. Get true 's using marginal probabilities and
odds ratio
for all dose levels.
vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1)
vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1)
tox |
Vector of marginal DLT risk rates for all levels |
res |
Vector of marginal immune response rates for all levels |
rho |
Vector of odds ratio for all levels. If length of |
The calculation is as following. If , then
,
,
, and
. Otherwise,
,
,
, and
, where
and
.
a VTTRUEPS
object containing all 's in a matrix
with its number of rows equaling the number of dose levels and its number
of columns being 4.
rst.sce <- vtScenario(tox=c(0.05, 0.05, 0.08), res=c(0.2, 0.3, 0.5), rho=1)
rst.sce <- vtScenario(tox=c(0.05, 0.05, 0.08), res=c(0.2, 0.3, 0.5), rho=1)
visit
applicationCall Shiny to run visit
as a web-based application.
vtShiny()
vtShiny()
A web browser will be brought up for users to access the GUI of visit
.
## Not run: vtShiny() ## End(Not run)
## Not run: vtShiny() ## End(Not run)
Simulate clinical trials with given settings for multiple times to evaluate the study operating characteristics.
vtSimu(n.rep = 100, seed = NULL, ..., n.cores = 1, update.progress = NULL)
vtSimu(n.rep = 100, seed = NULL, ..., n.cores = 1, update.progress = NULL)
n.rep |
Number of repetitions |
seed |
Seed |
... |
Optional parameters for |
n.cores |
Number of cores for parallel computations |
update.progress |
Reserved parameter for Shiny GUI |
A class VTSIMU
list with length n.rep
of results. Each item is
a list return from vtSingleTrial
.
rst.sce <- vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1) rst.simu <- vtSimu(n.rep = 100, n.cors = 2, trueps = rst.sce, size.cohort=3, size.level=12, prob.mdl="NONPARA");
rst.sce <- vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1) rst.simu <- vtSimu(n.rep = 100, n.cors = 2, trueps = rst.sce, size.cohort=3, size.level=12, prob.mdl="NONPARA");
Simulation function for simulating a single trial
vtSingleTrial(trueps, size.cohort = 3, size.level = NULL, etas = c(0.1, 0.3), dec.cut = 0.65, prob.mdl = c("NONPARA", "NONPARA+", "PARA", "PARA+"), priors = NULL, ...)
vtSingleTrial(trueps, size.cohort = 3, size.level = NULL, etas = c(0.1, 0.3), dec.cut = 0.65, prob.mdl = c("NONPARA", "NONPARA+", "PARA", "PARA+"), priors = NULL, ...)
trueps |
True |
size.cohort |
Size of each cohort |
size.level |
Maximum number of patients for each dose level |
etas |
Vector of length 2 representing |
dec.cut |
Thresholds |
prob.mdl |
Option of the probability models:
Default value is |
priors |
A class |
... |
Optional arguments for |
dose
: Optimal dose level
n.patients
: Number of patients for each dose level and each cohort
ptox
: Posterior mean of DLT risk rate after each interim analysis
pres
: Posterior mean of immune response rate after each interim analysis
region
: Identified region in the decision map after each interim analysis
prob
: Posterior mean of 's after each interim analysis
smps
: Observed data after each cohort
rst.sce <- vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1) rst.simu <- vtSingleTrial(trueps = rst.sce, size.cohort=3, size.level=12, prob.mdl="NONPARA");
rst.sce <- vtScenario(tox = c(0.05, 0.05, 0.08), res = c(0.2, 0.3, 0.5), rho = 1) rst.simu <- vtSingleTrial(trueps = rst.sce, size.cohort=3, size.level=12, prob.mdl="NONPARA");
Call STAN to draw posterior samples of the joint distribution of immunogenicity rate and toxicity risk for parametric and parametric+ model
vtStan(obs.y, priors, model = 0, iter = 4000, chains = 4, warmup = 2000, ...)
vtStan(obs.y, priors, model = 0, iter = 4000, chains = 4, warmup = 2000, ...)
obs.y |
Observed data matrix with
|
priors |
A class |
model |
option of the probability models:
See |
iter |
STAN option: number of iterations |
chains |
STAN option: number of chains |
warmup |
STAN option: number of warmup |
... |
additional parameters for package rstan's sampling method. These
options include |
A rstan
object that contains the posterior sampling results
Generate a plot representing the observed data and dose escalation decisions.
vtTrack(obs.all, cex.txt = 0.9, decision = 1, max.level = NULL, letters = c("E", "C", "S"), colors = c("green", "yellow", "red"), height = 0.5, end.width = 2, end.height = height, cex.roman = 0.9, cex.end = 0.9, ...)
vtTrack(obs.all, cex.txt = 0.9, decision = 1, max.level = NULL, letters = c("E", "C", "S"), colors = c("green", "yellow", "red"), height = 0.5, end.width = 2, end.height = height, cex.roman = 0.9, cex.end = 0.9, ...)
obs.all |
All observations collected in a matrix with 5 columns. Column
1 is the index of interim analysis starting from 1. Columns 2-5
correspond to columns 1-4 in |
cex.txt |
Text size of numbers in the plot |
decision |
Dose escalation decision. The options are
|
max.level |
Maximum number of dose levels shown in the plot |
letters |
Labels for dose escalation actions 1-3. Default values are "E", "C", "S" |
colors |
Possible colors in the last action box |
height |
Height of each individual box |
end.width |
Width of the last action box |
end.height |
Height of the last action box |
cex.roman |
Text size of the roman numerals |
cex.end |
Text size of the letter in the last action box |
... |
Optional arguments for |
obs.all <- rbind(c(1, 5, 2, 0, 0), c(2, 3, 4, 0, 0), c(3, 1, 6, 0, 0)); vtTrack(obs.all, end.width = 0.8, max.level = 3, decision = 3);
obs.all <- rbind(c(1, 5, 2, 0, 0), c(2, 3, 4, 0, 0), c(3, 1, 6, 0, 0)); vtTrack(obs.all, end.width = 0.8, max.level = 3, decision = 3);