Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Surmounting Withdrawal to Initiate Fast Treatment With Naltrexone (SWIFT)

Prepared by:
J M Maxwell, Center for Translational Data Science (CTDS), University of Chicago

About the Study

The study, Surmounting Withdrawal to Initiate Fast Treatment With Naltrexone (SWIFT), investigates two methods of treatment with extended-release naltrexone (XR-NTX). The primary comparison between the two methods is if the Rapid Method treatment (5-7 days long) is non-inferior to the Standard Method (13 days long) in succesful initiation of XR-NTX, with a secondary comparisons on time from admission to dose to dropout, craving, withdrawal severity, retention, abstinence, and safety measures as measured from admission through the first two months of post-induction maintenance of XR-NTX. (NCT: 04762537)

The Standard Procedure was defined as an approximately 5 day buprenorphine taper, a 7-10 day opiod free period, finished with a XR-naltrexone package insert. The Rapid Proceudre was defined as 1 day of buprenorphine at the minimal necessary dosage, 1 day opioid free, finished with ascending low dosages of oral naltrexone and additional medications for opioid withdrawal.

Setup

This notebook uses Python (tested with version 3.13) and relies on several modules and third-party packages. Thus we start by installing and/or importing these if necessary (click on the bar below to expand the cell and see the code).

Notebook Cell
!pip install pandas openpyxl gen3 tableone scipy matplotlib -q
import os
import numpy as np
import pandas as pd
from pandas.api.types import CategoricalDtype
import zipfile
from tableone import TableOne
from scipy import stats
import matplotlib.pyplot as plt
from IPython.display import Markdown, Image, display

Retrieving the Data

The data used here are archived at NIDA Data Share. Accessing data from NIDA Data Share currently requires that you login to the Platform using the InCommon login option. After doing so, you may download the data directly from the Study Page (under the Data tab) or you may download them using the gen3 command, as we will do here.

Each file indexed by the Platform is assigned a globally unique identifier (GUID) that may be used to retrieve the file. In this case, the GUID is 8a0b2f16-4bd1-4033-acfe-b353917aeb20.

if not os.path.exists('sas-crf-data-files_nida-ctn-0097 v1-1.zip'):
    !gen3 drs-pull object dg.H34L/8a0b2f16-4bd1-4033-acfe-b353917aeb20
{"succeeded": ["dg.H34L/8a0b2f16-4bd1-4033-acfe-b353917aeb20"], "failed": []}

Reading the Data

The downloaded file is a zip archive, so we need to unzip it before we can read the data. We then read two files into Pandas dataframes: one file containing the core variables and one containing the inpatient COWS scores.

with zipfile.ZipFile('sas-crf-data-files_nida-ctn-0097 v1-1.zip', 'r') as archive:
    archive.extractall('ctn0097')

core = pd.read_sas('ctn0097/corevars.sas7bdat', encoding='utf-8')
ip = pd.read_sas('ctn0097/inpatient.sas7bdat', encoding='utf-8')

Here we do a little reformatting.

core = (core
        .assign(AGE=core.AGE.astype('Int64'),
                SEX=core.SEX.astype('object').replace({1.0: 'Male',
                                                       2.0: 'Female'}).astype('category'),
                ETHNIC_CAT=core.ETHNIC_CAT.astype('object').replace({0.0: 'Non-Hispanic',
                                                                     1.0: 'Hispanic'}).astype('category'))
       )

Secondary Outcome Analysis

While the primary outcome measured was the receipt of the first dose of XR-naltrexone during the inpatient period, the secondary outcome explore here is the Clinical Opiate Withdrawal Scalse (COWS) Scores over the first 15 days of the trial.

In the table below we see that 415 individuals participated in the study and the corresponding demographic summaries of the individuals.

141 of the 225 (62.7%) assigned to the Rapid Procedure and 68 of the 190 (35.8%) assigned to the Standard Procedure ultimately received XR-naltrexone. Through non-inferiority tests and subgroup analyses it was determined that the rate of initiation success among the Rapid Procedure group was noninferior to the rate of initiation in the Standard Procedure group.

columns = ['AGE', 'SEX', 'ETHNIC_CAT']
categorical = ['SEX', 'ETHNIC_CAT']
continuous = ['AGE']
groupby = 'TRT'
TableOne(core, columns=columns, categorical=categorical, continuous=continuous, groupby=groupby, pval=False)
Loading...

The COWS score was measured as a binary for the presence of at least 1 moderate or above COWS score. In the figure and table below we can see that the mean and standard deviations of the Rapid and Standard Procedure were very similar throughout the course of the inpatient days, and that withdrawal did not differ significantly between procedure conditions.

fig, axes = plt.subplots(1, 1, figsize=(12, 6))

df2_viz = pd.DataFrame(ip.groupby(['INP_DAY', 'TRT'])['COW_SCORE_MAX'].agg(['mean', 'std'])).reset_index()
df2_viz = df2_viz[(df2_viz.INP_DAY > 0) & (df2_viz.INP_DAY <= 15)]

plt.errorbar(df2_viz[df2_viz.TRT == 'Standard'].INP_DAY - 0.1, df2_viz[df2_viz.TRT == 'Standard']['mean'],  df2_viz[df2_viz.TRT == 'Standard']['std'], marker='.', elinewidth=0.9)
plt.errorbar(df2_viz[df2_viz.TRT == 'Rapid'].INP_DAY + 0.1, df2_viz[df2_viz.TRT == 'Rapid']['mean'], df2_viz[df2_viz.TRT == 'Rapid']['std'], marker='.', elinewidth=0.9)

plt.xticks(np.linspace(1, 15, 15))
plt.yticks(np.linspace(0, 15, 6))
plt.ylabel('Daily maximum COWS Score, Mean')
plt.xlabel('Inpatient Day')

plt.title('Mean (SD) Daily Maximum COWS Score During the First 15 Days Treatment Procedure.')

plt.legend(["Standard Procedure", "Rapid Procedure"])

plt.show()
<Figure size 1200x600 with 1 Axes>
df2_viz.round(2)
Loading...

Conclusions

As we have briefly shown in this notebook, the study by Bisaga et. al. and the paper by Shulman et. al. demonstrates how the Rapid Procedure for XR-naltrexone initiation was noninferior compared to the Standard Procedure in treatment intiation and patients’ self reported withdrawal outcomes. Shulman et. al. conclude that the Rapid Procedure treatment initiation, while requiring more intensive medical engagement and monitoring, “could make XR-naltrexone a more viable treatment for patients with OUD.”

References
  1. Shulman, M., Greiner, M. G., Tafessu, H. M., Opara, O., Ohrtman, K., Potter, K., Hefner, K., Jelstrom, E., Rosenthal, R. N., Wenzel, K., Fishman, M., Rotrosen, J., Ghitza, U. E., Nunes, E. V., & Bisaga, A. (2024). Rapid Initiation of Injection Naltrexone for Opioid Use Disorder: A Stepped-Wedge Cluster Randomized Clinical Trial. JAMA Network Open, 7(5), e249744. 10.1001/jamanetworkopen.2024.9744
  2. Bisaga, A., & Jr. (2025). Surmounting Withdrawal to Initiate Fast Treatment with Naltrexone (SWIFT): Improving the Real-World Effectiveness of Injection Naltrexone for Opioid Use Disorder. HEAL Data Platform. 10.60490/HDP01319