Skip to content

Commit 8531091

Browse files
Closes #246: NEST and pharmaverseadam collaboration post (#264)
* #246 Initial draft of NEST and pharmaverseadam collaboration post * Update posts/zzz_DO_NOT_EDIT_nest_and_pharmaverseadam/nest_and_pharmaverseadam.qmd Co-authored-by: Ben Straub <[email protected]> * #246 updates for checks and following review --------- Co-authored-by: Ben Straub <[email protected]>
1 parent 73c56dd commit 8531091

File tree

4 files changed

+168
-0
lines changed

4 files changed

+168
-0
lines changed

inst/WORDLIST.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ accountabilities
88
ACOVFL
99
ACTARM
1010
ACTARM
11+
Acknowledgements
1112
adadas
1213
ADADAS
1314
adae
@@ -209,6 +210,7 @@ britannica
209210
bs
210211
bsa
211212
BSABL
213+
Bundfuss
212214
btn
213215
caa
214216
callout
@@ -556,6 +558,7 @@ img
556558
img
557559
iml
558560
iml
561+
interdependencies
559562
IMWG
560563
IMWG
561564
Ingelheim
@@ -697,6 +700,7 @@ modles
697700
modularity
698701
modularization
699702
modularize
703+
modularized
700704
Mosteller
701705
msrc
702706
MWI
@@ -939,6 +943,7 @@ rsubmission
939943
rtable
940944
rtables
941945
rtf
946+
Rua
942947
Rubalingam
943948
Rucki
944949
Rucki
@@ -957,6 +962,7 @@ sapply
957962
sas
958963
saveRDS
959964
scalable
965+
scda
960966
scm
961967
scss
962968
SCSUBTH
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
suppressMessages(library(dplyr))
2+
# markdown helpers --------------------------------------------------------
3+
4+
markdown_appendix <- function(name, content) {
5+
paste(paste("##", name, "{.appendix}"), " ", content, sep = "\n")
6+
}
7+
markdown_link <- function(text, path) {
8+
paste0("[", text, "](", path, ")")
9+
}
10+
11+
12+
13+
# worker functions --------------------------------------------------------
14+
15+
insert_source <- function(repo_spec, name,
16+
collection = "posts",
17+
branch = "main",
18+
host = "https://github.com",
19+
text = "Source",
20+
file_name) {
21+
path <- paste(
22+
host,
23+
repo_spec,
24+
"tree",
25+
branch,
26+
collection,
27+
name,
28+
file_name,
29+
sep = "/"
30+
)
31+
return(markdown_link(text, path))
32+
}
33+
34+
insert_timestamp <- function(tzone = Sys.timezone()) {
35+
time <- lubridate::now(tzone = tzone)
36+
stamp <- as.character(time, tz = tzone, usetz = TRUE)
37+
return(stamp)
38+
}
39+
40+
insert_lockfile <- function(repo_spec, name,
41+
collection = "posts",
42+
branch = "main",
43+
host = "https://github.com",
44+
text = "Session info") {
45+
path <- path <- "https://pharmaverse.github.io/blog/session_info.html"
46+
47+
return(markdown_link(text, path))
48+
}
49+
50+
51+
52+
# top level function ------------------------------------------------------
53+
54+
insert_appendix <- function(repo_spec, name, collection = "posts", file_name) {
55+
appendices <- paste(
56+
markdown_appendix(
57+
name = "Last updated",
58+
content = insert_timestamp()
59+
),
60+
" ",
61+
markdown_appendix(
62+
name = "Details",
63+
content = paste(
64+
insert_source(repo_spec, name, collection, file_name = file_name),
65+
# get renv information,
66+
insert_lockfile(repo_spec, name, collection),
67+
sep = ", "
68+
)
69+
),
70+
sep = "\n"
71+
)
72+
knitr::asis_output(appendices)
73+
}
Loading
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
---
2+
title: "A collaborative triumph: Re-using test data between the NEST and admiral teams"
3+
author:
4+
- name: Joe Zhu
5+
- name: Edoardo Mancini
6+
description: "This post described one of the first joint efforts between the NEST and admiral teams, where test data from the pharmaverseadam package was used within the NEST framework."
7+
# Note that the date below will be auto-updated when the post is merged.
8+
date: "2024-12-01"
9+
# Please do not use any non-default categories.
10+
# You can find the default categories in the repository README.md
11+
categories: [ADaM, TLG, Community]
12+
# Feel free to change the image
13+
image: "nest_and_pharmaverseadam.png"
14+
15+
---
16+
17+
<!--------------- typical setup ----------------->
18+
19+
```{r setup, include=FALSE}
20+
long_slug <- "zzz_DO_NOT_EDIT_nest_and_pharmaverseadam"
21+
library(link)
22+
link::auto(keep_pkg_prefix = FALSE)
23+
```
24+
25+
<!--------------- post begins here ----------------->
26+
27+
<img src="nest_and_pharmaverseadam.png" align="center" style="float:right" width="100%"/>
28+
29+
## Introduction
30+
31+
In the dynamic world of clinical research, innovation and collaboration are key drivers of success. The [NEST](https://insightsengineering.github.io/nest/) and {admiral} teams exemplify this through their groundbreaking packages. By leveraging open-source tools and fostering a community-driven approach, they have significantly advanced data integration and reporting methodologies in the clinical research setting. This story celebrates one of the first occasions in which the [NEST](https://insightsengineering.github.io/nest/) and {admiral} were able to join forces and collaborate.
32+
33+
## Who are the NEST Team?
34+
35+
The [NEST](https://insightsengineering.github.io/nest/) team, an acronym for Next-Generation Exploratory and Standardized Tools, has pioneered a collection of open-sourced R packages designed to expedite insight generation under clinical research settings. Originating at Roche, [NEST](https://insightsengineering.github.io/nest/) has attracted a diverse array of collaborators from academia, the pharmaceutical industry, and clinical research institutes, largely due to efforts like pharmaverse. Their mission is to accelerate clinical reporting and welcome contributions from the broader scientific community.
36+
37+
## Who are the admiral team?
38+
39+
Focused on a complementary goal, the {admiral} team is dedicated to providing an open-source, modularized toolbox for creating ADaM datasets in R. Their approach is transparent and collaborative, empowering users to co-create and refine a harmonized methodology for ADaM development across the pharmaceutical industry. The {admiral} team designs their tools to be user-friendly and versatile, capable of addressing a wide range of data requirements.
40+
41+
## Setting the Stage for Collaboration
42+
43+
Over a year ago, an opportunity for collaboration was identified within [NEST](https://insightsengineering.github.io/nest/) and {admiral}. Indeed, the [NEST](https://insightsengineering.github.io/nest/) team was reliant on simulated data for integration testing and powering of its [TLG Catalog](https://insightsengineering.github.io/tlg-catalog/stable/), which often lacked realism and failed to cover edge cases or expose software limitations. Through conversations within the pharmaverse, it was realized that some of these challenges could be addressed by switching to using the more realistic test data offered by the {pharmaverseadam} package (maintained by the {admiral} team). The source of the data within {pharmaverseadam} is the is real SDTM data published through the [CDISC Test Data pilot](https://github.com/cdisc-org/sdtm-adam-pilot-project), converted into ADaM by running the {admiral} template programs on it.
44+
45+
This potential pivot would beneficial for both teams. For one thing, it would allow the [NEST](https://insightsengineering.github.io/nest/) team to achieve more realistic and comprehensive testing, thus enhancing the robustness of their development work. Simultaneously, it would mean that the {admiral} team would receive feedback from [NEST](https://insightsengineering.github.io/nest/) about the robustness of both the {pharmaverseadam} datasets and the templates used to generate them.
46+
47+
## Key Achievements
48+
49+
The following months were a period of collaboration for the two teams as this switch was enacted. Numerous achievements were identified:
50+
51+
- __Realistic Data Integration__: Transitioning from simulated to more realistic data provided the [NEST](https://insightsengineering.github.io/nest/) team with more accurate and relevant testing conditions. This change was crucial in identifying and rectifying potential software limitations.
52+
53+
- __Scope and Dependency Management__: Both teams agreed to avoid creating strong interdependencies that could extend release cycles. [NEST](https://insightsengineering.github.io/nest/) packages maintained minimal data for documentation purposes, while {admiral} preserved extensive datasets separately.
54+
55+
- __CI Integration and Automation__: On the [NEST](https://insightsengineering.github.io/nest/) side, new CI integration tests ensured that template updates were automatically verified against stored {pharmaverseadam} datasets. This maintained consistency and allowed developers to identify intended changes promptly.
56+
57+
- __Strategic Pipelines__: An automated pipeline was established to update {pharmaverseadam} datasets for each new release, reflecting any template changes accurately.
58+
59+
## Recent Developments
60+
61+
The collaboration bore fruit as the teams uncovered critical insights and improvements. For instance, using the {pharmaverseadam} data in the {scda.test} package helped the [NEST](https://insightsengineering.github.io/nest/) team identify and correct issues in their table template development, specifically in calculating denominator values. The realistic test data also revealed minor inconsistencies in the derivation of ECG data within the {admiral} templates, which were promptly addressed, enhancing data quality.
62+
63+
## Conclusion
64+
65+
The collaboration between the [NEST](https://insightsengineering.github.io/nest/) and {admiral} teams showcases the power of open-source initiatives and community-driven efforts such as the pharmaverse in advancing clinical research. By integrating realistic data and refining their testing processes, they have significantly enhanced the robustness and reliability of their tools. This partnership not only accelerates insight generation but also cultivates a culture of collaboration and innovation, benefiting the broader pharmaverse community.
66+
67+
The success of this collaboration highlights the profound impact of shared goals and collective innovation, paving the way for future advancements in clinical research methodologies and outcomes.
68+
69+
## Acknowledgements
70+
71+
We would like to thank the following people for their support during this project:
72+
73+
- Daphne Grasselly for establishing the automated CI refresh pipeline in {pharmaverseadam}, and Kangjie Zhang for leading the {pharmaverseadam} team in 2024.
74+
75+
- Ben Straub, Stefan Bundfuss, Zelos Zhu, Ross Farrugia and Jeff Dickinson for their support from the {admiral} side.
76+
77+
- Leena Khatri and Emily de la Rua for support from the [NEST](https://insightsengineering.github.io/nest/) side.
78+
79+
<!--------------- appendices go here ----------------->
80+
81+
```{r, echo=FALSE}
82+
source("appendix.R")
83+
insert_appendix(
84+
repo_spec = "pharmaverse/blog",
85+
name = long_slug,
86+
# file_name should be the name of your file
87+
file_name = list.files() %>% stringr::str_subset(".qmd") %>% first()
88+
)
89+
```

0 commit comments

Comments
 (0)