| Title: | Neuroscience Extension Package for ADaM in 'R' Asset Library |
|---|---|
| Description: | Programming neuroscience specific Clinical Data Standards Interchange Consortium (CDISC) compliant Analysis Data Model (ADaM) datasets in 'R'. ADaM datasets are a mandatory part of any New Drug or Biologics License Application submitted to the United States Food and Drug Administration (FDA). Analysis derivations are implemented in accordance with the "Analysis Data Model Implementation Guide" (CDISC Analysis Data Model Team, 2021, <https://www.cdisc.org/standards/foundational/adam>). This package extends the 'admiral' package. |
| Authors: | Jian Wang [aut] (ORCID: <https://orcid.org/0009-0002-4677-3781>), Meilin Jiang [aut, cre] (ORCID: <https://orcid.org/0000-0003-4515-4567>), Miles Almond [aut] (ORCID: <https://orcid.org/0009-0007-1784-0355>), Xiao Chen [aut] (ORCID: <https://orcid.org/0009-0000-6959-5151>), Fanny Gautier [aut] (ORCID: <https://orcid.org/0009-0004-3581-0131>), Gayatri G. [aut], Leena Khatri [aut] (ORCID: <https://orcid.org/0000-0002-2268-4023>), Edoardo Mancini [aut] (ORCID: <https://orcid.org/0009-0006-4899-8641>), Eric Nantz [aut], Lina Patil [aut], Chris Pelentrides [aut], Katie Withycombe [aut] (ORCID: <https://orcid.org/0009-0005-5376-1932>), Eli Lilly and Company [cph, fnd], Cytel Inc. [cph, fnd], F. Hoffmann-La Roche AG [cph, fnd] |
| Maintainer: | Meilin Jiang <[email protected]> |
| License: | Apache License (>= 2) |
| Version: | 0.3.1.9001 |
| Built: | 2026-10-21 12:27:33 UTC |
| Source: | https://github.com/pharmaverse/admiralneuro |
An updated ADaM ADAPET dataset using NV, AG, SUPPNV, ADSL
admiralneuro_adapetadmiralneuro_adapet
An object of class tbl_df (inherits from tbl, data.frame) with 83 rows and 50 columns.
Other datasets:
admiralneuro_adtpet,
adsl_neuro
An updated ADaM ADTPET dataset using NV, AG, SUPPNV, ADSL
admiralneuro_adtpetadmiralneuro_adtpet
An object of class tbl_df (inherits from tbl, data.frame) with 34 rows and 47 columns.
Other datasets:
admiralneuro_adapet,
adsl_neuro
An updated ADaM ADSL dataset with Alzheimer's Disease patients
adsl_neuroadsl_neuro
An object of class tbl_df (inherits from tbl, data.frame) with 15 rows and 36 columns.
Other datasets:
admiralneuro_adapet,
admiralneuro_adtpet
Computes the Centiloid value based on an amyloid Positron Emission Tomography (PET) scan radioactive tracer, Standardized Uptake Value Ratio (SUVR) value, pipeline, and reference region. Also allows for custom formula parameters.
compute_centiloid( tracer, pipeline, ref_region, suvr, custom_slope = NULL, custom_intercept = NULL )compute_centiloid( tracer, pipeline, ref_region, suvr, custom_slope = NULL, custom_intercept = NULL )
tracer |
Amyloid PET tracer A character string is expected.
If
|
pipeline |
SUVR pipeline A character string is expected.
If
|
ref_region |
Reference region A character string is expected.
If
|
suvr |
SUVR value A positive numeric value is expected.
|
custom_slope |
Optional slope parameter for custom Centiloid calculation formula A numeric value is expected when provided.
When
|
custom_intercept |
Optional intercept parameter for custom centiloid calculation formula A numeric value is expected when provided.
When
|
The Centiloid scale is a standardized quantitative measure for amyloid PET imaging that allows comparison between different tracers and analysis methods. This function converts SUVR values to the Centiloid scale based on published conversion equations for specific tracer, pipeline, and reference region combinations.
Centiloid is calculated as:
where slope and intercept are formula parameters. If custom_slope and custom_intercept
are not specified, this function uses pre-defined slope and intercept based on
the user's selections of tracer, pipeline, and reference region.
The combinations of tracer, pipeline and reference region in the table below are supported. The
columns "slope" and "intercept" then show the values of the slope and intercept that
compute_centiloid() will use to calculate the centiloid value in each case.
| tracer | pipeline | ref_region | slope | intercept |
| 18F-Florbetapir | AVID FBP SUVR PIPELINE¹ | Whole Cerebellum | 183.07 | -177.26 |
| 18F-Florbetaben | AVID FBB SUVR PIPELINE² | Whole Cerebellum | 156.06 | -148.13 |
| 18F-Florbetapir | BERKELEY FBP SUVR PIPELINE³ | Whole Cerebellum | 188.22 | -189.16 |
| 18F-Florbetaben | BERKELEY FBB SUVR PIPELINE³ | Whole Cerebellum | 157.15 | -151.87 |
The equations used for the conversions are based on the following references:
¹ Navitsky, et al. (2018). doi:10.1016/j.jalz.2018.06.1353 ² Sims, et al. (2024). doi:10.1001/jama.2023.13239 ³ Royse, et al. (2021). doi:10.1186/s13195-021-00836-1
Alternatively, the user can override the pre-selection by specifying both custom_slope
and custom_intercept instead. When custom_slope and custom_intercept are specified,
the function ignores tracer, pipeline and ref_region for calculation purposes. However,
this function always requires specification of tracer, pipeline, and ref_region
parameters, even when using custom slope and intercept values. This design choice ensures
that users remain cognizant of the imaging context and analysis methodology when computing
Centiloid values.
For additional Centiloid transformation formulas, see: Iaccarino, L. et al. (2025). doi:10.1016/j.nicl.2025.103765
If a matching combination of tracer, pipeline, and reference region is not specified and both
custom_slope and custom_intercept are not specified, the function aborts with an error.
A numeric Centiloid value.
Computes Centiloid with predefined slope/intercept for supported tracer/pipeline/ref_region combinations:
compute_centiloid( tracer = "18F-Florbetapir", pipeline = "AVID FBP SUVR PIPELINE", ref_region = "Whole Cerebellum", suvr = 1.25 ) #> [1] 51.5775
Computes Centiloid by overriding slope/intercept using custom values:
compute_centiloid( tracer = "MyTracer", pipeline = "MyPipeline", ref_region = "MyRegion", suvr = 1.25, custom_slope = 193, custom_intercept = -187 ) #> [1] 54.25
Other com_bds_findings:
compute_upsit_percentile()
This function computes the UPSIT (University of Pennsylvania Smell Identification Test) percentile for a given subject based on their age, sex, and UPSIT raw score. The percentile is determined by looking up the corresponding value in a normative reference table.
compute_upsit_percentile(sex, age, upsit_score)compute_upsit_percentile(sex, age, upsit_score)
sex |
Sex of the subject. Must be either "M" or "F" A character string of either "M" or "F" is expected
|
age |
Age of the subject in years.
|
upsit_score |
The UPSIT ranging from 0 to 40. Higher scores indicate better olfactory function.
|
The function uses an internal lookup table (upsit_lookup) that contains
normative percentile data stratified by sex, age range, and UPSIT score.
The lookup table is based on published normative data.
Age ranges in the lookup table include:
50-54 years
55-59 years
60-64 years
65-69 years
70-74 years
75-79 years
80+ years (no upper limit)
The function is designed to work efficiently in vectorized operations
within data processing pipelines (e.g., with dplyr::mutate())
A numeric percentile value.
The UPSIT percentile value corresponding to the input
parameters. Returns NA_real_ if no matching entry is found in the
lookup table.
A 52 years old male with upsit raw score of 25
compute_upsit_percentile(sex = "M", age = 52, upsit_score = 25) #> [1] 5
A 81 years old female with upsit raw score of 30
compute_upsit_percentile(sex = "F", age = 81, upsit_score = 30) #> [1] 39
Minimal age is 50 and score of 0 and 40, return NA if no match found
compute_upsit_percentile(sex = "M", age = 45, upsit_score = 25) #> [1] NA
Brumm MC, et. al., Updated Percentiles for the University of Pennsylvania Smell Identification Test in Adults 50 Years of Age and Older. doi:10.1212/WNL.0000000000201463
Other com_bds_findings:
compute_centiloid()