The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
This major release introduces two overall changes: adding a new set of diagnostics, and new settings objects.
Changes related to adding new diagnostics:
Deprecated computeTimeStability()
and
computePreExposureGainP()
functions.
Added the checkTimeStabilityAssumption()
,
checkEventObservationIndependenceAssumption()
,
checkEventExposureIndependenceAssumption()
and
checkRareOutcomeAssumption()
functions. These implement
diagnostics for the four major assumptions of the SCCS design.
Added the endOfObservationEraLength
argument to the
createSccsIntervalData()
function, which defaults to 30.
This adds a probe window at the end of the observation period. The
estimate for this window is used by the
checkEventExposureIndependenceAssumption()
diagnostic.
Added the preExposure
argument to the
createEraCovariateSettings()
function, which defaults to
start < 0
. This can be used to designate one or more
windows as the pre-exposure window, used by the
checkEventExposureIndependenceAssumption()
diagnostic.
Moved the sccsDiagnosticThresholds
from
exportToCsv()
to runSccsAnalyses()
.
Estimates that fail diagnostics are now removed before empirical calibration, not afterwards. This in general should lead to narrower calibrated confidence intervals.
Added the getDiagnosticsSummary()
function.
Changes related to the new settings objects:
All settings objects have been changed to R6 objects. This should make it easier for external developers to generate valid settings JSON files.
All individual analytic functions (getDbSccsData()
,
createStudyPopulationArgs()
,
createSccsIntervalData()
,
createScriIntervalData()
, fitSccsModel()
) now
use the setting objects as arguments. This is to remove code
duplication, and increase consistency between single study and
multi-analyses frameworks.
The analysis settings of runSccsAnalyses()
have been
combined in a SccsAnalysesSpecifications
object that can be
created using the new createSccsAnalysesSpecifications()
function.
Other changes:
Removed deprecated useCustomCovariates
,
useNestingCohort
, studyStartDate
, and
studyEndDate
arguments of getDbSccsData()
and
createGetDbSccsDataArgs()
.
Removed deprecated minCasesForAgeSeason
of
createSccsIntervalData()
and
createCreateSccsIntervalDataArgs()
.
Removed cdmVersion
argument from the
getDbSccsData()
and runSccsAnalyses()
functions.
Bugfixes
Fixed another error in calendar time splines when there are cases, but not in the study period, but only after restricting to first outcome only.
Fixed bug in attrition table that could lead to non-integer observed days.
Adding support for Andromeda 1.0.0.
Bugfixes
Bugfixes
Fixed (near) infinite loop when using end-of-observation dependence correction and weighting function is poorly integrable.
Changed computation of p-value for time-trend to be more robust against extreme time trends.
Changes
controlType
argument to
runSccsAnalyses()
, explicitly setting the type of
(negative) controls: outcome controls or exposure controls. Setting to
“outcome” (the default) will now group by exposure (and nesting cohort
if defined).Changes
More informative error messages when analysis specifications are inconsistent.
Throwing error when defining an analysis that does not specify at least one era covariate that is the exposure of interest.
The includeEraIds
argument of
createEraCovariateSettings()
no longer has a default,
forcing users to explicitly set this to avoid erroneously specifying all
covariates.
Bugfixes
Fixed ‘ORDER BY is ignored in subqueries without LIMIT’ warning
when calling createSccsIntervalData()
.
Fixed ‘std::bad_alloc’ error when any observation period start date is before 1970.
Fixed NA covariate values when age, season, or calendar time splines are removed because there are fewer cases than knots.
Bugfixes
Bugfixes
exposures_outcome_set_id
field in ‘sccs_exposure’
and ‘sccs_exposures_outcome_set’ tables.Changes
exposures_outcome_set_id
from a sequential
number to a hash to avoid issues when dividing a set of analyses over
various machines, and combining the results later.Bugfixes
Fixed error in SQL about “#case_in_period”.
Fixed case count in createStudyPopulation()
when
restricting time in prior getDbSccsData()
call, e.g. by
defining a study period and/or nesting cohort.
Preventing duplicate calendar time and age knots, causing unique key violation errors when uploading.
Bugfixes
Changes
Allowing nesting cohort ID to be specified as part of the exposure-outcome pair.
Deprecating the useCustomCovariates
and
useNestingCohort
arguments of the
getDbSccsData()
function.
Optimized runSccsAnalyses()
to allow running bigger
sets of analyses.
Adding sccs_time_period
table to export, capturing
the calendar time period included in the analysis.
Adding one-sided (calibrated) p-values to results summary and results model.
exportToCsv()
can now use multithreading for
speed.
Adding unblindForEvidenceSynthesis
field to
sccs_diagnostics_summary_table
.
Unblinding logic now same as for CohortMethod
: also
unblind if a diagnostic is not evaluated (instead of only unblinding
when passing).
Bugfixes
Handling edge case in computeTimeStability()
when
there is only 1 month.
Correcting computation of fraction of start month observed for
computeTimeStability()
(was off by 1/31).
Changes
Added the restrictTimeToEraId
argument to the
createStudyPopulation()
and
createCreateStudyPopulationArgs()
functions to allow
automatically restricting study time to when the exposure was observed
(e.g. when the drug was on the market).
Switching from cubic to quadratic splines for age, season, and calendar time to reduce degrees of freedom.
Deprecating the studyStartDate
and
studyEndDate
arguments of the getDbSccsData()
function.
Introducing the studyStartDates
and
studyEndDates
arguments of the getDbSccsData()
function. These allow specification of multiple (non-overlapping) study
periods. This can for example be useful when one wishes to exclude the
time of the COVID-19 pandemic to avoid temporal instability.
The spline for calendar time effects can now be multi-segmented, for multiple study periods. Internal knots are evenly distributed over segments based on the amount of data per segment. Additional boundary knots are automatically added for additional segments.
Changed the stability metric implemented in the
computeTimeStability()
function in two ways: First, the
observed rate of the outcome for each month is now compared against the
expected rate. This expected rate considers which persons were observed
during that month, and if specified, the adjustment for season and
calendar time. Second, instead of considering whether any single month
exceeded the threshold, the metric now considers whether the mean ratio
across all months exceeds the threshold. Together, this makes the metric
more robust, and less likely to declare instability when the majority of
data is stable.
Changed the plotEventToCalendarTime()
to show the
observed-to-expected ratio, both with and without adjustments for season
and calendar time (if specified in the model).
Bugfix
Changes
Adding the genderConceptIds
argument to
createStudyPopulation()
.
Dropping dependency on survival
.
Bugfix
Handling edge case in computeMdrr()
when all
observed time is exposed. (Returning Inf
instead of
throwing an error.)
Not ignoring allowRegularization
in calendar time
settings.
When person has multiple nesting cohort entries, prevent double-counting of cases in attrition table if nesting cohort entries have no outcome.
Changes
studyStartDate
and studyEndDate
arguments have been changed back to strings instead of dates to
facilitate easier conversion to and from JSON.Bug fixes
Changes
Removing deprecated oracleTempSchema
argument from
getDbSccsData()
and runSccsAnalyses()
functions.
Adding checking of user input to all functions.
The studyStartDate
and studyEndDate
arguments of the getDbSccsData()
function have been changed
from character to Date type.
Dropping support of split points. This can be achieved by creating multiple era covariates with different times at risk.
The computeMdrr()
now works with either an
SccsIntervalData
or an SccsModel
object.
Major overhaul of the multiple-analyses framework:
Added the createExposure()
function for creating
objects of type `exposure. This argument allows specifying the true
effect size of the exposure, if known (e.g. for negative
controls).
The createExposureOutcome()
function has been
replaced with the createExposuresOutcome()
function, which
accepts multiple objects of type exposure
.
The createEraCovariateSettings()
function has a new
argument exposureOfInterest
which determines if its
estimate will be reported in the result summary.
The results summary table has been pivoted so it now only has one
estimate per row. The results summary table is now precomputed as part
of runSccsAnalyses()
, automatically includes empirically
calibrated estimates (if controls have been provided) and can be
retrieved using the getResultsSummary()
function.
The reference table (the output of
runSccsAnalyses()
) can now always be retrieved using the
getFileReference()
function.
Dropping exposureType
and outcomeType
options from the createSccsAnalysis ()
function, since the
notion of analysis-specific exposure and outcome selection strategies
can also be implemented using the analysesToExclude
argument of runSccsAnalyses()
.
Settings related to multi-threading are combined in to a single
settings object that be created using the new
createSccsMultiThreadingSettings()
function.
The design
argument of the
createSccsAnalysis()
function has been removed, and the
createSccsIntervalDataArgs
and
createScriIntervalDataArgs
arguments have been replaced
with a single createIntervalDataArgs
argument that accepts
arguments for both the createSccsIntervalData()
and
createScriIntervalData()` functions.
Added the exportToCsv()
function, to export the
results of a multi-analysis study to CSV files for sharing between
sites. The output results model is now documented in a new
vignette.
Changes
Setting the deleteCovariatesSmallCount
argument to 0
in the getDbSccsData()
and
createGetDbSccsDataArgs()
functions. This was originally
set to 100 for SCCS analyses with many covariates, but makes no sense
when considering only one or a few exposures.
Adding the computePreExposureGainP()
function.
Setting default maxRatio
in
computeTimeStability()
to 1.25 (instead of 1.1) to avoid
false positives.
Bug fixes
Fixing “RIGHT and FULL OUTER JOINs are not currently supported”
error on SQLite when using drug_era
or
condition_era
table.
Fixing computeTimeStability()
per-month p-value (was
showing the minimum p-value for all months).
Fixing uncaught errors when fitting models caused by Cyclops’s new return flags.
Fix error about Andromeda object already being closed when generating SCCS era data.
Changes
Setting the default Cyclops control object to use
resetCoefficients = TRUE
to ensure we always get the exact
same model, irrespective of the number of threads used.
Added maxRatio
argument to
computeTimeStability()
.
Bug fixes
Fixing missing months in plotEventToCalendarTime()
when there are no observation period starts and ends in those
months.
Now limiting the number of unexposed cases when including only a
calendar time spline (as set by
minCasesForTimeCovariates
).
Fix error when calling computeMdrr()
on an
sccsIntervalData
object that does not contain the exposure
of interest.
Fixed typo in computeMdrr()
, renaming
propPopExposued
to
propPopulationExposed
.
BugFixes
SqlRender
.Changes
Adding optional calendar time covariate.
Added the analysesToExclude
argument to
runSccsAnalyses()
, allowing the users to specify
exposure-outcome-analysis combinations to exclude from
execution.
Fixing seed for regularization cross-validation to improve reproducibility.
Added the computeTimeStability()
function.
Changes
Adding likelihood profile to SCCS model objects if
profileLikelihood
argument is set to TRUE
when
calling createEraCovariateSettings()
.
Deprecating oracleTempSchema
argument in favor of
tempEmulationSchema
in accordance with new
SqlRender
convention.
Adding optional title
argument to all plotting
functions.
Adding highlightExposedEvents
argument to
plotExposureCentered
function.
Switching power calculation default method to signed root likelihood ratio as recommended by Musonda et al. (2005).
BugFixes
Prevent error when excluding variable not in data from regularization.
Removing unexposed subjects when computing power to avoid overestimating statistical power.
Changes
Adding the self-controlled risk interval design.
Downloading person and observation period IDs as strings to avoid issues with 64-bit integers. (These IDs are not used by SCCS, and are used for reference only).
Outputting log likelihood ratio as part of estimates.
Computing meta-data on covariates.
BugFixes
Fixed syntax error in SQL when using a nesting cohort.
Fixing error when sampled cohort is empty.
Fixing nesting.
Attrition table now also includes lines where remaining count is zero.
Fixing custom covariates download.
Fixing error on Oracle due to long temp table name.
Fixing computation of confidence intervals (CIs) when not all estimates for which CIs are computed have data.
Changes
Switching from ff to Andromeda for storing large data objects.
Making creation of the study population a separate step, with the
new createStudyPopulation
function.
The data on cohorts, exposure, and outcome eras retrieved from the database is now consistently referred to as ‘eras’. Data transformed to non-overlapping intervals is now referred to as ‘sccsIntervalData’.
Adding tracking of attrition.
Automatically removing age spline if selected censoring model already adjusts for age.
BugFixes
Generating sequential case IDs instead of observation period IDs to avoid collisions due to loss of precision when converting BIGINT to R’s numeric.
Added more heuristics to detect ill-behaving censoring functions when adjusting for event-dependent censoring.
Bugfixes
Fixed errors introduced by R 4.0.0.
Gracefully handling when fitting the outcome model hits the max number of iterations.
Bugfixes
Several workaround for issues with the ff package.
Fixed bug causing age to be read incorrectly when creating eras.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.