
ADaM in R Asset Library
To provide an open source, modularized toolbox that enables thepharmaceutical programming community to develop ADaM datasets in R.
The package is available from CRAN and can be installed with:
install.packages("admiral")To install the development version of the package from GitHubrun:
pak::pkg_install("pharmaverse/admiral",dependencies =TRUE)The{admiral} family has several downstream and upstreamdependencies and so releases are done in two Phases:
NB: We strive for a regular 6 month release schedulefor{admiraldev},{pharmaversesdtm},and{admiral}.Extension packages releases are on a content-basis and as such may bemore infrequent than the below schedule shows.
| Release Schedule | Phase 1- Date and Packages | Phase 2- Date and Packages |
|---|---|---|
| Q4 2025/Q1 2026 | Late December 2025/early January 2026 | Late December 2025/early January 2026 |
| {pharmaversesdtm} | {admiralonco} | |
| {admiraldev} | {admiralophtha} | |
| {admiral} | {admiralvaccine} | |
| {admiralpeds} | ||
| {admiralmetabolic} | ||
| {pharmaverseadam} | ||
| Q2 2026 | Mid-June 2026 | Mid-June 2026 |
| {pharmaversesdtm} | {admiralonco} | |
| {admiraldev} | {admiralophtha} | |
| {admiral} | {admiralvaccine} | |
| {admiralpeds} | ||
| {admiralmetabolic} | ||
| {pharmaverseadam} |
NB: We strive for a regular 6 month releaseschedule.
Provide users with an open source, modularized toolbox with which tocreate ADaM datasets in R.As opposed to a “run 1 line and an ADaMappears” black-box solution or an attempt to automate ADaM.
One of the key aspects of{admiral} is its developmentby the users for the users. It gives an entry point for all tocollaborate, co-create and contribute to a harmonized approach ofdeveloping ADaMs in R across the pharmaceutical industry.
To set expectations: It is not our target that{admiral}will ever provide all possible solutions for all ADaM datasets outsideof study specific needs. It depends on the user’s collaboration andcontribution to help grow over time to an asset library that is robust,easy to use and has an across-industry focus. We do not see a coverageof 100% of all ADaM derivations as ever achievable—ADaM is endless.
We will provide:
{admiral} following the provided programmingstrategy and modular approachThere are three types of packages in the{admiral}family:
{admiralonco}).{admiralroche} or{admiralgsk}).Related data packages include:
{admiral} team.This is a prerequisite package for{admiral}.{admiral} and TA package extensions templates on the{pharmaversesdtm}data.Both these packages are developed by the{admiral} team,but can used across the pharmaverse as common, open-source test SDTM orADaM data.
The following packages are also useful when working with ADaMdatasets:
For{admiral} and all extension packages, we prioritizeproviding our users with asimple to adopt toolkit thatenables them to producereadable andeasilyconstructible ADaM programs. The following explains ourphilosophy, which we try to adhere to across the{admiral}family of packages. There isn’t always a clear single, straightforwardrule, but there are guiding principles we adhere to for{admiral}. This manifesto helps show the considerations ofour developers when making decisions.
We have four design principles to achieve the main goal:
All{admiral} functions should be easy to use.
All{admiral} functions have a clear purpose.
We try not to ever design single functions that could achievenumerous very different derivations. For example if you as a user pickup a function with >10 different arguments then chances are it isgoing to be difficult to understand if this function could be appliedfor your specific need. The intention is that arguments/parameters caninfluence how the output of a function is calculated, but not change thepurpose of the function.
We try to combine similar tasks and algorithms into one functionwhere applicable to reduce the amount of repetitive functions withsimilar algorithms and to group together similar functionality toincrease usability (e.g. one study day calculation rather than afunction per variable).
We strive to design functions that are not too general and tryingto fulfill multiple, complex purposes.
Functions should not allow expressions as arguments that are usedas code snippets in function calls.
We recommend to avoid copy and paste of complex computationalalgorithms or repetitive code like checks and advise to wrap them into afunction. However we would also like to avoid multi-layered functionalnesting, so this needs to be considered carefully to keep the nesting of3-4 functions an exception rather than the rule.
All{admiral} functions are easily findable.
{admiral} family package website issearchable.{admiral} package.All{admiral} functions follow theProgrammingStrategy that all our developers and contributors must follow, sothat all our code has a high degree of consistency and readability.
{admiral} developers.{admiral}.{admiral}.If you are interested in R and Clinical Reporting, then visit thepharmaverse blog. Thiscontains regular, bite-sized posts showcasing how{admiral}and other packages in the pharmaverse can be used to realize the visionof full end-to-end Clinical Reporting in R.
We are also always looking for keen{admiral} users topublish their own blog posts about how they use the package. If thiscould be you, feel free make an issue in theGitHub repo and getstarted!
For a full collection of{admiral} conferencepresentations over the years, please travel to ourPresentationArchive.
We use the following for support and communications between user anddeveloper community:
Along with the authors and contributors, thanks to the followingpeople for their work on the package:
Jaxon Abercrombie, Mahdi About, Teckla Akinyi, Anthony Arroyo, AlexAssuied, James Black, Claudia Carlucci, Asha Chakma, Liming Clark, BillDenney, Kamila Duniec, Alice Ehmann, Romain Francois, Ania Golab, AlanaHarris, Declan Hodges, Anthony Howard, Shimeng Huang, Samia Kabi, JamesKim, John Kirkpatrick, Leena Khatri, Robin Koeger, KonstantinaKoukourikou, Pavan Kumar, Pooja Kumari, Shan Lee, Wenyi Liu, SadchlaMascary, Iain McCay, Jack McGavigan, Jordanna Morrish, Syed Mubasheer,Kirill Muller, Thomas Neitmann, Yohann Omnes, Barbara O’Reilly, LinaPatil, Celine Piraux, Hamza Rahal, Nick Ramirez, Tom Ratford, SukalpoSaha, Tamara Senior, Eric Simms, Sophie Shapcott, Vladyslav Shuliar,Ondrej Slama, Andrew Smith, Daniil Stefonishin, Steven Ting, VigneshThanikachalam, Michael Thorpe, Annie Yang, Ojesh Upadhyay, FranciszekWalkowiak, Enki Wang, Phillip Webster, Andrii Yurovskyi, Kangjie Zhangand Zelos Zhu.