Calculate if study is likely a platform trial or not
Source:R/f_likelyPlatformTrial.R
f.likelyPlatformTrial.Rd
Trial concept calculated: platform trial, research platform. As operational definition, at least one of these criteria is true: a. trial has "platform", "basket", "umbrella", "multi.?arm", "multi.?stage" or "master protocol" in its title or description (for ISRCTN, this is the only criterion; some trials in EUCTR lack data in English), b. trial has more than 2 active arms with different investigational medicines, after excluding comparator, auxiliary and placebo medicines (calculated with f.numTestArmsSubstances; not used for ISRCTN because it cannot be calculated precisely), c. trial has more than 2 periods, after excluding safety run-in, screening, enrolling, extension and follow-up periods (for CTGOV and CTGOV2, this criterion requires results-related data).
Arguments
- df
data frame such as from dbGetFieldsIntoDf. If `NULL`, prints fields needed in `df` for calculating this trial concept, which can be used with dbGetFieldsIntoDf.
Value
data frame with columns `_id` and `.likelyPlatformTrial`, a logical, and two complementary columns, each with lists of identifiers: `.likelyRelatedTrials` (based on other identifiers provided in the trial record, including `associatedClinicalTrials` from CTIS; listing identifiers whether or not the trial with the other identifier is in the database collection) and `.maybeRelatedTrials` (based on similar short terms in the first set of brackets or before a colon in the trial title; only listing identifiers from the database collection).
Details
For EUCTR, requires that results have been included in the collection, using `ctrLoadQueryIntoDb(queryterm = ..., euctrresults = TRUE, con = ...)`. Requires packages dplyr and stringdist to be installed; stringdist is used for evaluating terms in brackets in the trial title, where trials may be related if the term similarity is 0.77 or higher.
Publication references considered: EU-PEARL WP2 2020 and Williams RJ et al. 2022, doi:10.1136/bmj-2021-067745
Examples
# fields needed
f.likelyPlatformTrial()
#> [[1]]
#> [1] "ctrname"
#>
#> $euctr
#> [1] "subjectDisposition.postAssignmentPeriods.postAssignmentPeriod.title"
#> [2] "e822_placebo"
#> [3] "e823_other"
#> [4] "e824_number_of_treatment_arms_in_the_trial"
#> [5] "subjectDisposition.postAssignmentPeriods.postAssignmentPeriod.arms.arm"
#> [6] "a3_full_title_of_the_trial"
#>
#> $ctgov
#> [1] "clinical_results.participant_flow.period_list.period.title"
#> [2] "arm_group"
#> [3] "official_title"
#>
#> $ctgov2
#> [1] "resultsSection.participantFlowModule.periods.title"
#> [2] "protocolSection.armsInterventionsModule.armGroups"
#> [3] "protocolSection.identificationModule.officialTitle"
#>
#> $isrctn
#> [1] "interventions.intervention.interventionType"
#> [2] "trialDesign.secondaryStudyDesign"
#> [3] "interventions.intervention.drugNames"
#> [4] "interventions.intervention.interventionType"
#> [5] "trialDescription.scientificTitle"
#>
#> $ctis
#> [1] "authorizedPartI.trialDetails.protocolInformation.studyDesign.periodDetails.title"
#> [2] "authorizedPartI.trialDetails.associatedClinicalTrials.ctNumber"
#> [3] "authorizedApplication.authorizedPartI.trialDetails.protocolInformation.studyDesign.periodDetails.title"
#> [4] "authorizedApplication.authorizedPartI.trialDetails.associatedClinicalTrials.ctNumber"
#> [5] "authorizedPartI.productRoleGroupInfos"
#> [6] "authorizedApplication.authorizedPartI.productRoleGroupInfos"
#> [7] "authorizedPartI.trialDetails.clinicalTrialIdentifiers.fullTitle"
#> [8] "authorizedApplication.authorizedPartI.trialDetails.clinicalTrialIdentifiers.fullTitle"
#>
# apply trial concept when creating data frame
dbc <- nodbi::src_sqlite(
dbname = system.file("extdata", "demo.sqlite", package = "ctrdata"),
collection = "my_trials", flags = RSQLite::SQLITE_RO)
trialsDf <- dbGetFieldsIntoDf(
calculate = "f.likelyPlatformTrial",
con = dbc)
#> To review trial concepts details, call 'help("ctrdata-trial-concepts")'
#> Querying database (25 fields)...
#> Calculating f.likelyPlatformTrial...
#> Searching for duplicate trials...
#> - Getting all trial identifiers...
#> , 31 found in collection
trialsDf
#> _id .likelyPlatformTrial .likelyRelatedTrials
#> 1 12949496 FALSE 2014-002988-16
#> 2 13281214 FALSE 2015-004526-33
#> 3 17473621 FALSE NA
#> 4 2012-003632-23-CZ FALSE 2012-003632-23, NCT01818492
#> 5 2012-003632-23-SE FALSE 2012-003632-23, NCT01818492
#> 6 2014-002606-20-PT FALSE 2014-002606-20
#> 7 2014-003556-31-GB FALSE 2014-003556-31, NCT02386839
#> 8 2014-003556-31-SE FALSE 2014-003556-31, NCT02386839
#> 9 2022-500244-37-00 FALSE 2020-005849-16
#> 10 2022-501142-30-00 FALSE NA
#> 11 2023-505613-24-00 FALSE 2019-003842-34, NCT04665037
#> 12 2023-508143-51-01 FALSE 2021-004994-30
#> 13 2024-510663-34-00 FALSE 2019-001588-63, NCT04494412
#> 14 20343063 FALSE NA
#> 15 61070850 FALSE NA
#> 16 76463425 FALSE NCT01727609
#> 17 80181452 FALSE NCT01035190
#> 18 88261002 FALSE 2012-004260-22
#> 19 NCT00617929 FALSE NA
#> 20 NCT01125800 FALSE 2010-019348-37
#> 21 NCT01483820 FALSE NA
#> 22 NCT01505608 FALSE NA
#> 23 NCT01592045 FALSE NA
#> 24 NCT02620761 FALSE NA
#> 25 NCT03280147 FALSE NA
#> 26 NCT03325439 FALSE 2015-002756-27
#> 27 NCT03431558 FALSE NA
#> 28 NCT03876704 FALSE NA
#> 29 NCT04001712 FALSE NA
#> 30 NCT04041765 FALSE NA
#> 31 NCT05969327 FALSE NA
#> .maybeRelatedTrials
#> 1 NA
#> 2 NA
#> 3 NA
#> 4 NA
#> 5 NA
#> 6 NA
#> 7 NA
#> 8 NA
#> 9 NA
#> 10 NA
#> 11 NA
#> 12 NA
#> 13 NA
#> 14 NA
#> 15 NA
#> 16 NA
#> 17 NA
#> 18 NA
#> 19 NA
#> 20 NA
#> 21 NA
#> 22 NA
#> 23 NA
#> 24 NA
#> 25 NA
#> 26 NA
#> 27 NA
#> 28 NA
#> 29 NA
#> 30 NA
#> 31 NA