Title: | Convert Antipsychotic Doses to Chlorpromazine Equivalents |
---|---|
Description: | As different antipsychotic medications have different potencies, the doses of different medications cannot be directly compared. Various strategies are used to convert doses into a common reference so that comparison is meaningful. Chlorpromazine (CPZ) has historically been used as a reference medication into which other antipsychotic doses can be converted, as "chlorpromazine-equivalent doses". Using conversion keys generated from widely-cited scientific papers, e.g. Gardner et. al 2010 <doi:10.1176/appi.ajp.2009.09060802> and Leucht et al. 2016 <doi:10.1093/schbul/sbv167>, antipsychotic doses are converted to CPZ (or any specified antipsychotic) equivalents. The use of the package is described in the included vignette. Not for clinical use. |
Authors: | Eric Brown [aut, cre] |
Maintainer: | Eric Brown <[email protected]> |
License: | GPL-3 |
Version: | 0.2.0 |
Built: | 2024-08-15 05:38:13 UTC |
Source: | https://github.com/ropensci/chlorpromazineR |
Use this to combine 2 keys by using the whole "base" key, and adding any antipsychotics from the "added" key that are not in the "base" key.
add_key(base, added, trim, verbose = TRUE)
add_key(base, added, trim, verbose = TRUE)
base |
the base key |
added |
the key from which other antipsychotics are found to add |
trim |
TRUE to use trim_key on both the base and added key, needed when one does not use the full names (e.g. leucht2016). |
verbose |
If TRUE, added antipsychotic names will be shown in a message |
a merged key
Other key functions:
check_key()
,
trim_key()
add_key(gardner2010, leucht2016, trim = TRUE)
add_key(gardner2010, leucht2016, trim = TRUE)
Provided a data.frame, x, this checks that the antipsychotic names stored in the x's variable ap_label are present in the key.
check_ap( input_data, key = chlorpromazineR::gardner2010, ap_label, route, route_label )
check_ap( input_data, key = chlorpromazineR::gardner2010, ap_label, route, route_label )
input_data |
data.frame with antipsychotic name and dose data |
key |
source of the conversion factors–defaults to Gardner et al. 2010 |
ap_label |
column in x that stores antipsychotic name |
route |
options include "oral", "sai", "lai" or "mixed" |
route_label |
if "mixed" route is specified, provide the column that stores the route information |
number of antipsychotic names in x[,ap_label] that don't match key
participant_ID <- c("P01", "P02", "P03", "P04") age <- c(42, 29, 30, 60) # not used in calculation, just shows other data # can exist in the data.frame antipsychotic <- c("olanzapine", "olanzapine", "quetiapine", "ziprasidone") dose <- c(10, 12.5, 300, 60) example_oral <- data.frame(participant_ID, age, antipsychotic, dose, stringsAsFactors = FALSE) check_ap(example_oral, ap_label = "antipsychotic", route = "oral", key = gardner2010)
participant_ID <- c("P01", "P02", "P03", "P04") age <- c(42, 29, 30, 60) # not used in calculation, just shows other data # can exist in the data.frame antipsychotic <- c("olanzapine", "olanzapine", "quetiapine", "ziprasidone") dose <- c(10, 12.5, 300, 60) example_oral <- data.frame(participant_ID, age, antipsychotic, dose, stringsAsFactors = FALSE) check_ap(example_oral, ap_label = "antipsychotic", route = "oral", key = gardner2010)
chlorpromazineR uses conversion factors stored in a named list of 3 named lists. This verifies that the key is in a usable format, which can be helpful when creating custom keys or modifying included keys.
check_key(key)
check_key(key)
key |
the key to check |
TRUE if the key is valid, otherwise a error is thrown.
Other key functions:
add_key()
,
trim_key()
check_key(gardner2010)
check_key(gardner2010)
A list of antipsychotics and their chlorpromazine equivalent doses, generated from the following file included with the package: system.file("extdata", "davis1974.csv", package="chlorpromazineR").
davis1974
davis1974
A named list of 3 named lists (1 for each route) and each sub-list contains the conversion factors for each antipsychotic. The 3 top-level lists are named 'oral', 'sai', and 'lai' (route), and the lists they contain have names corresponding to the antipsychotic, e.g. 'olanzapine'.
John Davis (1974). Dose equivalence of the anti-psychotic drugs. Journal of Psychiatric Research, 11, 65-69. <https://doi.org/10.1016/0022-3956(74)90071-5>
A list of antipsychotics and their chlorpromazine equivalent doses, generated from the following file included with the package: system.file("extdata", "gardner2010.csv", package="chlorpromazineR").
gardner2010
gardner2010
A named list of 3 named lists (1 for each route) and each sub-list contains the conversion factors for each antipsychotic. The 3 top-level lists are named 'oral', 'sai', and 'lai' (route), and the lists they contain have names corresponding to the antipsychotic, e.g. 'olanzapine'.
The SAI data is not included in this key, because the original study did not specify a conversion factor from chlorpromazine LAI to oral. The alternative key gardner2010_withsai can be used, which includes the SAI data, but the chlorpromazine equivalent doses produced are equivalent to chlorpromazine SAI not chlorpromazine oral. They could be manually converted (e.g. by multiplying the SAI doses by 3 per equivalence noted by Davis 1974 <https://doi.org/10.1016/0022-3956(74)90071-5>)
Gardner, D. M., Murphy, A. L., O’Donnell, H., Centorrino, F., & Baldessarini, R. J. (2010). International consensus study of antipsychotic dosing. The American Journal of Psychiatry, 167(6), 686–693. <https://doi.org/10.1176/appi.ajp.2009.09060802>
A list of antipsychotics and their chlorpromazine equivalent doses, generated from the following file included with the package: system.file("extdata", "gardner2010.csv", package="chlorpromazineR").
gardner2010_withsai
gardner2010_withsai
A named list of 3 named lists (1 for each route) and each sub-list contains the conversion factors for each antipsychotic. The 3 top-level lists are named 'oral', 'sai', and 'lai' (route), and the lists they contain have names corresponding to the antipsychotic, e.g. 'olanzapine'.
The SAI equivalents produced by this key are equivalent to chlorpromazine SAI not oral. They could be manually converted.
Gardner, D. M., Murphy, A. L., O’Donnell, H., Centorrino, F., & Baldessarini, R. J. (2010). International consensus study of antipsychotic dosing. The American Journal of #' Psychiatry, 167(6), 686–693. <https://doi.org/10.1176/appi.ajp.2009.09060802>
A list of antipsychotics and their chlorpromazine equivalent doses, generated from the following file included with the package: system.file("extdata", "leucht2016.csv", package="chlorpromazineR").
leucht2016
leucht2016
A named list of 3 named lists (1 for each route) and each sub-list contains the conversion factors for each antipsychotic. The 3 top-level lists are named 'oral', 'sai', and 'lai' (route), and the lists they contain have names corresponding to the antipsychotic, e.g. 'olanzapine'.
Leucht, S., Samara, M., Heres, S., & Davis, J. M. (2016). Dose Equivalents for Antipsychotic Drugs: The DDD Method. Schizophrenia Bulletin, 42(suppl_1), S90–S94. <https://doi.org/10.1093/schbul/sbv167>
A list of antipsychotics and their olanzapine-equivalent doses, generated from the following file included with the package: system.file("extdata", "leucht2020.csv", package="chlorpromazineR").
leucht2020
leucht2020
A named list of 3 named lists (1 for each route) and each sub-list contains the conversion factors for each antipsychotic. The 3 top-level lists are named 'oral', 'sai', and 'lai' (route), and the lists they contain have names corresponding to the antipsychotic, e.g. 'olanzapine'.
This reference does not include chlorpromazine, so the conversion from leucht2016 is implied (i.e. chlorpromazine = olanzapine * 30).
Leucht, S., Crippa, A., Siafis, S., Patel, M., Orsini, N. & Davis, J. M. (2020). Dose-Response Meta-Analysis of Antipsychotic Drugs for Acute Schizophrenia. American Journal of Psychiatry. 117(4). <https://doi.org/10.1176/appi.ajp.2019.19010034>
As in to_cpz(), to_ap() converts doses of antipsychotics into equivalent doses to a reference antipsychotic. Whereas in to_cpz() the reference antipsychotic is chlorpromazine (CPZ), to_ap() converts to equivalents of an arbitrary antipsychotic specified as a string to convert_to_ap. Conversion factors are specified in the key.
to_ap( input_data, convert_to_ap = "olanzapine", convert_to_route = "oral", ap_label, dose_label, route = "oral", key = chlorpromazineR::gardner2010, cpz_eq_label = "cpz_eq", ref_eq_label = "ap_eq", factor_label = "cpz_conv_factor", route_label = NULL, q_label = NULL )
to_ap( input_data, convert_to_ap = "olanzapine", convert_to_route = "oral", ap_label, dose_label, route = "oral", key = chlorpromazineR::gardner2010, cpz_eq_label = "cpz_eq", ref_eq_label = "ap_eq", factor_label = "cpz_conv_factor", route_label = NULL, q_label = NULL )
input_data |
data.frame with antipsychotic name and dose data |
convert_to_ap |
name of desired reference antipsychotic |
convert_to_route |
the route of the desired reference antipsychotic |
ap_label |
column in x that stores antipsychotic name |
dose_label |
column in x that stores dose |
route |
options include "oral", "sai", "lai" or "mixed" |
key |
source of the conversion factors–defaults to Gardner et al. 2010 |
cpz_eq_label |
the name of the column to be created, to save the calculated CPZ-equivalent dose |
ref_eq_label |
the name of the column to be created to save the doses in terms of the specified reference antipsychotic (in convert_to_ap) |
factor_label |
the name of the column to be created to store the conversion factors |
route_label |
if "mixed" route is specified, provide the column that stores the route information |
q_label |
if long-acting injectable doses are included, provide the column that stores the injection frequency (days), or only if the doses have already been divided, set q_label = 1. |
data.frame with new variables storing conversion factor and CPZ-equivalent doses
Other conversion functions:
to_cpz()
participant_ID <- c("P01", "P02", "P03", "P04") age <- c(42, 29, 30, 60) # not used in calculation, just shows other data # can exist in the data.frame antipsychotic <- c("olanzapine", "olanzapine", "quetiapine", "ziprasidone") dose <- c(10, 12.5, 300, 60) example_oral <- data.frame(participant_ID, age, antipsychotic, dose, stringsAsFactors = FALSE) to_ap(example_oral, convert_to_ap="olanzapine", convert_to_route="oral", ap_label = "antipsychotic", dose_label = "dose", route = "oral")
participant_ID <- c("P01", "P02", "P03", "P04") age <- c(42, 29, 30, 60) # not used in calculation, just shows other data # can exist in the data.frame antipsychotic <- c("olanzapine", "olanzapine", "quetiapine", "ziprasidone") dose <- c(10, 12.5, 300, 60) example_oral <- data.frame(participant_ID, age, antipsychotic, dose, stringsAsFactors = FALSE) to_ap(example_oral, convert_to_ap="olanzapine", convert_to_route="oral", ap_label = "antipsychotic", dose_label = "dose", route = "oral")
Given a data.frame containing doses of antipsychotics to_cpz() converts the doses into the equivalent chlorpromazine (CPZ) doses, using the conversion factors specified in the key.
to_cpz( input_data, ap_label, dose_label, route = "oral", key = chlorpromazineR::gardner2010, eq_label = "cpz_eq", factor_label = "cpz_conv_factor", route_label = NULL, q_label = NULL )
to_cpz( input_data, ap_label, dose_label, route = "oral", key = chlorpromazineR::gardner2010, eq_label = "cpz_eq", factor_label = "cpz_conv_factor", route_label = NULL, q_label = NULL )
input_data |
data.frame with antipsychotic name and dose data |
ap_label |
column in x that stores antipsychotic name |
dose_label |
column in x that stores dose |
route |
options include "oral", "sai", "lai" or "mixed" |
key |
source of the conversion factors–defaults to Gardner et al. 2010 |
eq_label |
the name of the column to be created, to save the calculated CPZ-equivalent dose |
factor_label |
the name of the column to be created to store the conversion factors |
route_label |
if "mixed" route is specified, provide the column that stores the route information |
q_label |
if long-acting injectable doses are included, provide the column that stores the injection frequency (days), or only if the doses have already been divided, set q_label = 1. |
The default key is gardner2010 which has data for both oral and long-acting antipsychotic medications. See help(gardner2010) for the source reference.
data.frame with new variables storing conversion factor and CPZ-equivalent doses
Other conversion functions:
to_ap()
participant_ID <- c("P01", "P02", "P03", "P04") age <- c(42, 29, 30, 60) antipsychotic <- c("olanzapine", "olanzapine", "quetiapine", "ziprasidone") dose <- c(10, 12.5, 300, 60) example_oral <- data.frame(participant_ID, age, antipsychotic, dose, stringsAsFactors = FALSE) to_cpz(example_oral, ap_label = "antipsychotic", dose_label = "dose", route = "oral")
participant_ID <- c("P01", "P02", "P03", "P04") age <- c(42, 29, 30, 60) antipsychotic <- c("olanzapine", "olanzapine", "quetiapine", "ziprasidone") dose <- c(10, 12.5, 300, 60) example_oral <- data.frame(participant_ID, age, antipsychotic, dose, stringsAsFactors = FALSE) to_cpz(example_oral, ap_label = "antipsychotic", dose_label = "dose", route = "oral")
For parenteral (sai) and long-acting/depot (lai) antipsychotics, the name consists of the usual generic name (such as haloperidol) and a second word describing the formulation (e.g. haloperidol decanoate). Since to_cpz() and add_key() require exact matches to work properly, removing the second word may be required, but should be done with care as it can add ambiguity (e.g. fluphenazine enanthate and decanoate).
trim_key(key)
trim_key(key)
key |
the key to trim |
the key that was trimmed (a named list of 3 named lists)
Other key functions:
add_key()
,
check_key()
trim_key(gardner2010)
trim_key(gardner2010)
A list of antipsychotics and their chlorpromazine equivalent doses, generated from the following file included with the package: system.file("extdata", "woods2003.csv", package="chlorpromazineR").
woods2003
woods2003
A named list of 3 named lists (1 for each route) and each sub-list contains the conversion factors for each antipsychotic. The 3 top-level lists are named 'oral', 'sai', and 'lai' (route), and the lists they contain have names corresponding to the antipsychotic, e.g. 'olanzapine'.
Scott Woods (2003). Chlorpromazine Equivalent Doses for the Newer Atypical Antipsychotics. Journal of Clinical Psychiatry. 64(6). 663-667. <https://doi.org/10.4088/JCP.v64n0607>