{"id":13751873,"url":"https://github.com/pharmaverse/admiral","last_synced_at":"2026-02-03T12:13:52.846Z","repository":{"id":37407484,"uuid":"349132982","full_name":"pharmaverse/admiral","owner":"pharmaverse","description":"ADaM in R Asset Library","archived":false,"fork":false,"pushed_at":"2026-01-29T19:16:01.000Z","size":363342,"stargazers_count":268,"open_issues_count":24,"forks_count":87,"subscribers_count":18,"default_branch":"main","last_synced_at":"2026-01-30T01:33:32.245Z","etag":null,"topics":["cdisc","clinical-trials","open-source","r"],"latest_commit_sha":null,"homepage":"https://pharmaverse.github.io/admiral","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pharmaverse.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-03-18T15:54:15.000Z","updated_at":"2026-01-29T19:08:17.000Z","dependencies_parsed_at":"2023-11-22T15:58:49.629Z","dependency_job_id":"b700624d-3494-4da0-818f-bf02a0a919c3","html_url":"https://github.com/pharmaverse/admiral","commit_stats":{"total_commits":2871,"total_committers":113,"mean_commits":25.4070796460177,"dds":0.8355973528387322,"last_synced_commit":"1ebc258bfbcb1d57ad1872c8586727188adaab4f"},"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/pharmaverse/admiral","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharmaverse%2Fadmiral","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharmaverse%2Fadmiral/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharmaverse%2Fadmiral/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharmaverse%2Fadmiral/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pharmaverse","download_url":"https://codeload.github.com/pharmaverse/admiral/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharmaverse%2Fadmiral/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29045538,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T10:09:22.136Z","status":"ssl_error","status_checked_at":"2026-02-03T10:09:16.814Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cdisc","clinical-trials","open-source","r"],"created_at":"2024-08-03T09:00:56.363Z","updated_at":"2026-02-03T12:13:52.836Z","avatar_url":"https://github.com/pharmaverse.png","language":"R","funding_links":[],"categories":["Regulatory \u0026 Submission Tools","R","Ranked by starred repositories"],"sub_categories":["CDISC Data Standards"],"readme":"# admiral \u003cimg src=\"man/figures/logo.png\" align=\"right\" width=\"200\" style=\"margin-left:50px;\"/\u003e\n\n\u003c!-- start badges --\u003e\n[![pharmaverse admiral Badge](http://pharmaverse.org/shields/admiral.svg)](https://pharmaverse.org)\n[![CRAN status](https://www.r-pkg.org/badges/version/admiral)](https://CRAN.R-project.org/package=admiral)\n![Test Coverage](https://raw.githubusercontent.com/pharmaverse/admiral/badges/main/test-coverage.svg)\n[![Total Downloads](http://cranlogs.r-pkg.org/badges/grand-total/admiral?color=green)](https://cran.r-project.org/package=admiral)\n[![admiral CI/CD Workflows](https://github.com/pharmaverse/admiral/actions/workflows/common.yml/badge.svg)](https://github.com/pharmaverse/admiral/actions/workflows/common.yml)\n\n\u003c!-- end badges --\u003e\nADaM in R Asset Library\n\n*Explore all the other packages in the [{admiral} ecosystem](https://pharmaverse.org/e2eclinical/adam/) to learn more about ADaM programming in R.*\n\n## Purpose\n\nTo provide an open source, modularized toolbox that enables the pharmaceutical programming community\nto develop ADaM datasets in R.\n\n## Installation\n\nThe package is available from CRAN and can be installed with:\n\n```r\ninstall.packages(\"admiral\")\n```\n\nTo install the development version of the package from GitHub run:\n\n```r\npak::pkg_install(\"pharmaverse/admiral\", dependencies = TRUE)\n```\n\n## Cheat Sheet\n\n\u003ca href=\"https://github.com/pharmaverse/admiral/blob/main/inst/cheatsheet/admiral_cheatsheet.pdf\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/pharmaverse/admiral/main/inst/cheatsheet/cheatsheet_image.png\" width=\"630\" height=\"252\" alt=\"Admiral Cheat Sheet Image\"/\u003e\u003c/a\u003e\n\n## Release Schedule\n\nThe `{admiral}` family has several downstream and upstream dependencies and so releases are done in two Phases:\n\n* Phase 1 release is for [{admiraldev}](https://pharmaverse.github.io/admiraldev/), [{pharmaversesdtm}](https://pharmaverse.github.io/pharmaversesdtm/), and [{admiral}](https://pharmaverse.github.io/admiral/cran-release/) core\n* Phase 2 release is extension packages, e.g. [{admiralonco}](https://pharmaverse.github.io/admiralonco/), [{admiralophtha}](https://pharmaverse.github.io/admiralophtha/), [{admiralvaccine}](https://pharmaverse.github.io/admiralvaccine/) and [{pharmaverseadam}](https://pharmaverse.github.io/pharmaverseadam/).\n\n__NB:__ We strive for a regular 6 month release schedule for [{admiraldev}](https://pharmaverse.github.io/admiraldev/), [{pharmaversesdtm}](https://pharmaverse.github.io/pharmaversesdtm/), and [{admiral}](https://pharmaverse.github.io/admiral/). Extension packages releases are on a content-basis and as such may be more infrequent than the below schedule shows, or there may even be ad-hoc releases.\n\n| Release Schedule | Phase 1- Date and Packages                                               | Phase 2- Date and Packages                                             |\n| ---------------- | ------------------------------------------------------------------------ | ---------------------------------------------------------------------- |\n|                  |                                                                          |                                                                        |\n| Q2 2026          | Mid-June 2026                                                            | End of June 2026                                                      | \n|                  | [{pharmaversesdtm}](https://pharmaverse.github.io/pharmaversesdtm/)      | [{admiralonco}](https://pharmaverse.github.io/admiralonco/)            |\n|                  | [{admiraldev}](https://pharmaverse.github.io/admiraldev/)                | [{admiralophtha}](https://pharmaverse.github.io/admiralophtha/)        |\n|                  | [{admiral}](https://pharmaverse.github.io/admiral/)                      | [{admiralvaccine}](https://pharmaverse.github.io/admiralvaccine/)      |\n|                  |                                                                          | [{admiralpeds}](https://pharmaverse.github.io/admiralpeds/)            |\n|                  |                                                                          | [{admiralmetabolic}](https://pharmaverse.github.io/admiralmetabolic/)  |\n|                  |                                                                          | [{admiralneuro}](https://pharmaverse.github.io/admiralneuro/)          |\n|                  |                                                                          | [{pharmaverseadam}](https://pharmaverse.github.io/pharmaverseadam/)    |\n|                  |                                                                          |                                                                        | \n| Q4 2026/Q1 2027  | Late December 2026/Early January 2027                                    |  Mid-January 2027                                                                      |\n|                  | [{pharmaversesdtm}](https://pharmaverse.github.io/pharmaversesdtm/)      | [{admiralonco}](https://pharmaverse.github.io/admiralonco/)            |\n|                  | [{admiraldev}](https://pharmaverse.github.io/admiraldev/)                | [{admiralophtha}](https://pharmaverse.github.io/admiralophtha/)        |\n|                  | [{admiral}](https://pharmaverse.github.io/admiral/)                      | [{admiralvaccine}](https://pharmaverse.github.io/admiralvaccine/)      |\n|                  |                                                                          | [{admiralpeds}](https://pharmaverse.github.io/admiralpeds/)            |\n|                  |                                                                          | [{admiralmetabolic}](https://pharmaverse.github.io/admiralmetabolic/)  |\n|                  |                                                                          | [{admiralneuro}](https://pharmaverse.github.io/admiralneuro/)          |\n|                  |                                                                          | [{pharmaverseadam}](https://pharmaverse.github.io/pharmaverseadam/)    |                                                                       \n\n## Main Goal\n\nProvide users with an open source, modularized toolbox with which to create ADaM datasets\nin R. _As opposed to a \"run one line and an ADaM appears\" black-box solution or an attempt to\nautomate ADaM._\n\nOne of the key aspects of `{admiral}` is its development by the users for the users.\nIt gives an entry point for all to collaborate, co-create and contribute to a\nharmonized approach of developing ADaMs in R across the pharmaceutical industry.\n\n## Scope\n\nTo set expectations: It is not our target that `{admiral}` will ever provide all possible solutions\nfor all ADaM datasets outside of study specific needs. It depends on the user's collaboration\nand contribution to help grow over time to an asset library that is robust, easy to use and\nhas an across-industry focus. We do not see a coverage of 100% of all ADaM derivations as ever\nachievable---ADaM is endless.\n\nWe will provide:\n\n* A toolbox of re-usable functions and utilities to create ADaM datasets using R scripts in a\n  modular manner (an \"opinionated\" design strategy).\n* Pharmaceutical communities and companies are encouraged to contribute to `{admiral}` following\n  the provided programming strategy and modular approach\n* Functions that are comprehensively documented and tested, including example calls---these are\n  all listed in the [Reference section](https://pharmaverse.github.io/admiral/cran-release/reference/index.html).\n* Vignettes on how to create ADSL, BDS and OCCDS datasets, including example scripts.\n* Vignettes for ADaM dataset specific functionality (i.e. dictionary coding, date imputation, SMQs ...).\n\n## The {admiral} Family of Packages\n\nThere are three types of packages in the `{admiral}` family:\n\n* Core package---one package containing all core functions required to create ADaMs, usable by any company (i.e. general derivations, utility functions and checks for ADSL, OCCDS and BDS).\n* TA (Therapeutic Area) package extensions---one package per TA with functions that are\n  specific to algorithms and requirements for that particular TA (e.g. [`{admiralonco}`](https://pharmaverse.github.io/admiralonco/)).\n* Company package extensions---specific needs and plug-ins for the company, such as access to metadata\n  (e.g. `{admiralroche}` or `{admiralgsk}`).\n\n## Related Packages\n\nRelated data packages include:\n\n* [{pharmaversesdtm}](https://pharmaverse.github.io/pharmaversesdtm/)---this contains test SDTM data sourced from the [CDISC pilot project](https://github.com/cdisc-org/sdtm-adam-pilot-project) or constructed ad-hoc by the `{admiral}` team. This is a prerequisite package for `{admiral}`.\n* [{pharmaverseadam}](https://pharmaverse.github.io/pharmaverseadam/)---this contains test ADaM data automatically generated by running the ADaM `{admiral}` and TA package extensions templates on the [{pharmaversesdtm}](https://pharmaverse.github.io/pharmaversesdtm/) data.\n\nBoth these packages are developed by the `{admiral}` team, but can used across the pharmaverse as common, open-source test SDTM or ADaM data.\n\nThe following packages are also useful when working with ADaM datasets:\n\n* [{metacore}](https://atorus-research.github.io/metacore/) and [{metatools}](https://pharmaverse.github.io/metatools/)---these enable users to manipulate and work with dataset metadata.\n* [{xportr}](https://atorus-research.github.io/xportr/)---this provides functionality to get xpt files ready for transport.\n\n## `{admiral}` Manifesto\n\nFor `{admiral}` and all extension packages, we prioritize providing our users with a __simple to adopt__ toolkit\nthat enables them to produce __readable__ and __easily constructible__ ADaM programs. The following explains\nour philosophy, which we try to adhere to across the `{admiral}` family of packages.\nThere isn't always a clear single, straightforward rule, but there are guiding principles we adhere to for `{admiral}`.\nThis manifesto helps show the considerations of our developers when making decisions.\n\nWe have four design principles to achieve the main goal:\n\n### Usability\n\nAll `{admiral}` functions should be easy to use.\n\n* Documentation is an absolute priority. Each function reference page should cover the purpose, descriptions of each argument with permitted values, the expected input and output, with clear real-life examples---so that users don't need to dig through code to find answers.\n* Vignettes that complement the functional documentation to help users see how best the functions can be applied to achieve ADaM requirements.\n* Functions should be written and structured in a way that users are able to read, re-use or extend them for study specific purposes if needed (see Readability below).\n\n### Simplicity\n\nAll `{admiral}` functions have a clear purpose.\n\n* We try not to ever design single functions that could achieve numerous very different derivations. For example if you as a user pick up a function with \u003e10 different arguments then chances are it is going to be difficult to understand if this function could be applied for your specific need. The intention is that arguments/parameters can influence how the output of a function is calculated, but not change the purpose of the function.\n\n* We try to combine similar tasks and algorithms into one function where applicable to reduce the amount of repetitive functions with similar algorithms and to group together similar functionality to increase usability (e.g. one study day calculation rather than a function per variable).\n\n* We strive to design functions that are not too general and trying to fulfill multiple, complex purposes.\n\n* Functions should not allow expressions as arguments that are used as code snippets in function calls.\n\n* We recommend to avoid copy and paste of complex computational algorithms or repetitive code like checks and advise to wrap them into a function. However we would also like to avoid multi-layered functional nesting, so this needs to be considered carefully to keep the nesting of 3-4 functions an exception rather than the rule.\n\n### Findability\n\nAll `{admiral}` functions are easily findable.\n\n* In a growing code base, across a family of packages, we make every effort to make our functions easily findable.\n* We use consistent naming conventions across all our functions, and provide vignettes and [ADaM templates](https://pharmaverse.github.io/admiral/cran-release/articles/templates.html) that help users to get started and build familiarity. Each `{admiral}` family package website is searchable.\n* We avoid repetitive functions that will do similar tasks (as explained above with study day example).\n* Each package extension is kept focused on the specific scope, e.g. features that are relevant across multiple extension packages will be moved to the core `{admiral}` package.\n\n### Readability\n\nAll `{admiral}` functions follow the [Programming Strategy](https://pharmaverse.github.io/admiraldev/articles/programming_strategy.html)\nthat all our developers and contributors must follow, so that all our code has a high degree of consistency and readability.\n\n* We encourage use of tidyverse (e.g. dplyr) over similar functionality existing in base R.\n* For sections of code that perform the actual derivations (e.g. besides assertions or basic utilities), we try to limit nesting of too many dependencies or functions.\n* Modularity is a focus---we don't try to achieve too many steps in one.\n* All code has to be well commented.\n* We recognize that a user or a Health Authority reviewer may have the wish to delve into the code base (especially given this open source setting), or users may need to extend/adapt the code for their study specific needs. We therefore want any module to be understandable to all, not only the `{admiral}` developers.\n\n## References and Documentation\n\n* Please go to [Get Started](https://pharmaverse.github.io/admiral/cran-release/articles/admiral.html) section to start using `{admiral}`.\n* Please see the [pharmaverse YouTube channel](https://www.youtube.com/channel/UCxQFEv8HNqM01DXzdQLCy6Q) for videos related to `{admiral}`.\n* Please see the [Programming Strategy](https://pharmaverse.github.io/admiraldev/articles/programming_strategy.html) to understand how functions are created.\n* Please see the [FAQ](https://pharmaverse.github.io/admiral/cran-release/articles/faq.html) for the most frequent questions.\n* Please see the [Contribution Model](https://pharmaverse.github.io/admiral/cran-release/CONTRIBUTING.html) for how to get involved with making contributions.\n* Please see [FAQ: R and Package Versions](https://pharmaverse.github.io/admiral/cran-release/articles/faq.html#why-do-we-use-a-certain-r-version-and-package-versions-for-development) for why we develop with certain R and package versions.\n\n## Pharmaverse Blog\n\nIf you are interested in R and Clinical Reporting, then visit the [pharmaverse blog](https://pharmaverse.github.io/blog/). This contains regular, bite-sized posts showcasing how `{admiral}` and other packages in the pharmaverse can be used to realize the vision of full end-to-end Clinical Reporting in R.\n\nWe are also always looking for keen `{admiral}` users to publish their own blog posts about how they use the package. If this could be you, feel free make an issue in the [GitHub repo](https://github.com/pharmaverse/blog) and get started!\n\n## Recent Conference Presentations\n\nFor a full collection of `{admiral}` conference presentations over the years, please travel to our [Presentation Archive](https://pharmaverse.github.io/admiraldiscovery/articles/presentation_archive.html).\n\n## Contact\n\nWe use the following for support and communications between user and developer community:\n\n* [Slack](https://pharmaverse.slack.com/)---for informal discussions, Q\\\u0026A and building our user community. If you don't have access, use this [link](https://join.slack.com/t/pharmaverse/shared_invite/zt-yv5atkr4-Np2ytJ6W_QKz_4Olo7Jo9A) to join the pharmaverse Slack workspace.\n* [GitHub Issues](https://github.com/pharmaverse/admiral/issues)---for direct feedback, enhancement requests or raising bugs.\n\n## Acknowledgments\n\nAlong with the authors and contributors, thanks to the following people for their work on the package:\n\nJaxon Abercrombie, Mahdi About, Teckla Akinyi, Anthony Arroyo, Alex Assuied, James Black, Claudia Carlucci, Asha Chakma, \nLiming Clark, Bill Denney, Kamila Duniec, Alice Ehmann, Romain Francois, G Gayatri, Ania Golab, Alana Harris, Declan Hodges,\nSolveig Holmgaard, Anthony Howard, Shimeng Huang, Samia Kabi, Leena Khatri, James Kim, John Kirkpatrick, Robin Koeger, Konstantina Koukourikou, \nDinakar Kulkarni, Pavan Kumar, Pooja Kumari, Shan Lee, Wenyi Liu, Sadchla Mascary, Iain McCay, Jack McGavigan, Jordanna Morrish, Syed Mubasheer,\nKirill Muller, Thomas Neitmann, Yohann Omnes, Barbara O'Reilly, Celine Piraux, Hamza Rahal, Nick Ramirez, Tom Ratford, \nSukalpo Saha, Tamara Senior, Sophie Shapcott, Vladyslav Shuliar, Eric Simms, Daniel Sjoberg, Ondrej Slama, Andrew Smith, Daniil Stefonishin,\nVignesh Thanikachalam, Michael Thorpe, Steven Ting, Ojesh Upadhyay, Franciszek Walkowiak, Enki Wang, Phillip Webster, \nAnnie Yang, Andrii Yurovskyi, Junze Zhang, Kangjie Zhang, Zelos Zhu\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpharmaverse%2Fadmiral","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpharmaverse%2Fadmiral","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpharmaverse%2Fadmiral/lists"}