Type: Package
Title: Neuroscience Extension Package for ADaM in 'R' Asset Library
Version: 0.2.1
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.
License: Apache License (≥ 2)
BugReports: https://github.com/pharmaverse/admiralneuro/issues
URL: https://pharmaverse.github.io/admiralneuro/, https://github.com/pharmaverse/admiralneuro
Depends: R (≥ 4.1)
Imports: admiral (≥ 1.4.1), admiraldev (≥ 1.4.0), cli (≥ 3.6.2), dplyr (≥ 1.1.1), hms (≥ 0.5.3), lifecycle (≥ 0.1.0), lubridate (≥ 1.7.4), magrittr (≥ 1.5), purrr (≥ 0.3.3), rlang (≥ 0.4.4), stringr (≥ 1.4.0), tibble (≥ 3.2.1), tidyr (≥ 1.0.2), tidyselect (≥ 1.1.0)
Suggests: diffdf, DT, htmltools, knitr, metatools, methods, pharmaversesdtm (≥ 1.0.0), reactable, readxl, rmarkdown, testthat (≥ 3.0.0)
VignetteBuilder: knitr
Config/testthat/edition: 3
Encoding: UTF-8
Language: en-US
LazyData: true
RoxygenNote: 7.3.3
NeedsCompilation: no
Packaged: 2026-02-04 19:49:09 UTC; c085541
Author: Jian Wang ORCID iD [aut, cre], Miles Almond ORCID iD [aut], Xiao Chen ORCID iD [aut], Fanny Gautier ORCID iD [aut], Gayatri G. [aut], Meilin Jiang ORCID iD [aut], Leena Khatri ORCID iD [aut], Edoardo Mancini ORCID iD [aut], Eric Nantz [aut], Lina Patil [aut], Chris Pelentrides [aut], Eli Lilly and Company [cph, fnd], Cytel Inc. [cph, fnd], F. Hoffmann-La Roche AG [cph, fnd]
Maintainer: Jian Wang <wang_jian_wj@lilly.com>
Repository: CRAN
Date/Publication: 2026-02-04 23:20:02 UTC

admiralneuro: Neuroscience Extension Package for ADaM in 'R' Asset Library

Description

logo

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.

Author(s)

Maintainer: Jian Wang wang_jian_wj@lilly.com (ORCID)

Authors:

Other contributors:

See Also

Useful links:


Amyloid PET Scan Analysis Dataset - Neuro

Description

An updated ADaM ADAPET dataset using NV, AG, SUPPNV, ADSL

Usage

admiralneuro_adapet

Format

An object of class tbl_df (inherits from tbl, data.frame) with 83 rows and 50 columns.

See Also

Other datasets: admiralneuro_adtpet, adsl_neuro


Tau PET Scan Analysis Dataset - Neuro

Description

An updated ADaM ADTPET dataset using NV, AG, SUPPNV, ADSL

Usage

admiralneuro_adtpet

Format

An object of class tbl_df (inherits from tbl, data.frame) with 34 rows and 47 columns.

See Also

Other datasets: admiralneuro_adapet, adsl_neuro


Subject Level Analysis Dataset-updated

Description

An updated ADaM ADSL dataset with Alzheimer's Disease patients

Usage

adsl_neuro

Format

An object of class tbl_df (inherits from tbl, data.frame) with 15 rows and 36 columns.

See Also

Other datasets: admiralneuro_adapet, admiralneuro_adtpet


Compute Centiloid Value

Description

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.

Usage

compute_centiloid(
  tracer,
  pipeline,
  ref_region,
  suvr,
  custom_slope = NULL,
  custom_intercept = NULL
)

Arguments

tracer

Amyloid PET tracer

A character string is expected. If custom_slope and custom_intercept are specified, this parameter is ignored. See Details section for accepted values in combination with pipeline and ref_region.

Permitted values

a character scalar, i.e., a character vector of length one

Default value

none

pipeline

SUVR pipeline

A character string is expected. If custom_slope and custom_intercept are specified, this parameter is ignored. See Details section for accepted values in combination with tracer and ref_region.

Permitted values

a character scalar, i.e., a character vector of length one

Default value

none

ref_region

Reference region

A character string is expected. If custom_slope and custom_intercept are specified, this parameter is ignored. See Details section for accepted values in combination with tracer and ref_region.

Permitted values

a character scalar, i.e., a character vector of length one

Default value

none

suvr

SUVR value

A positive numeric value is expected.

Permitted values

a numeric scalar, i.e., a numeric vector of length one

Default value

none

custom_slope

Optional slope parameter for custom Centiloid calculation formula

A numeric value is expected when provided. When custom_slope is specified (along with custom_intercept), this overrides the standard formula parameters tracer, pipeline, and ref_region. Default is NULL.

Permitted values

a numeric scalar, i.e., a numeric vector of length one

Default value

NULL

custom_intercept

Optional intercept parameter for custom centiloid calculation formula

A numeric value is expected when provided. When custom_intercept is specified (along with custom_slope), this overrides the standard formula parameters tracer, pipeline, and ref_region. Default is NULL.

Permitted values

a numeric scalar, i.e., a numeric vector of length one

Default value

NULL

Details

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:

Centiloid = slope \times SUVR + intercept

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.

Value

A numeric Centiloid value.

Examples

Using standard parameters

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

Using custom parameters

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

See Also

Other com_bds_findings: compute_upsit_percentile()


Compute UPSIT Percentile Based on Age, Sex, and Score

Description

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.

Usage

compute_upsit_percentile(sex, age, upsit_score)

Arguments

sex

Sex of the subject. Must be either "M" or "F" A character string of either "M" or "F" is expected

Permitted values

a character scalar, i.e., a character vector of length one

Default value

none

age

Age of the subject in years.

Permitted values

a numeric scalar, i.e., a numeric vector of length one

Default value

none

upsit_score

The UPSIT ranging from 0 to 40. Higher scores indicate better olfactory function.

Permitted values

a numeric scalar, i.e., a numeric vector of length one

Default value

none

Details

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:

The function is designed to work efficiently in vectorized operations within data processing pipelines (e.g., with dplyr::mutate())

Value

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.

Examples

Look up for male percentile

A 52 years old male with upsit raw score of 25

compute_upsit_percentile(sex = "M", age = 52, upsit_score = 25)
#> [1] 5

Look up for female percentile

A 81 years old female with upsit raw score of 30

compute_upsit_percentile(sex = "F", age = 81, upsit_score = 30)
#> [1] 39

Returns NA

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

References

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

See Also

Other com_bds_findings: compute_centiloid()