From 535170bbe4ae2bff6b054d6201cbadac4681dcd1 Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Wed, 30 Oct 2024 07:53:06 -0400 Subject: [PATCH 01/23] Delete posts/2024-01-04_end_of__year__up... directory --- .../2024-01-04_end_of__year__up.../appendix.R | 73 ------------------ ..._update_from_the__pharmaverse__council.qmd | 58 -------------- .../pharmaverse.PNG | Bin 20440 -> 0 bytes 3 files changed, 131 deletions(-) delete mode 100644 posts/2024-01-04_end_of__year__up.../appendix.R delete mode 100644 posts/2024-01-04_end_of__year__up.../end_of__year__update_from_the__pharmaverse__council.qmd delete mode 100644 posts/2024-01-04_end_of__year__up.../pharmaverse.PNG diff --git a/posts/2024-01-04_end_of__year__up.../appendix.R b/posts/2024-01-04_end_of__year__up.../appendix.R deleted file mode 100644 index ac352f6a..00000000 --- a/posts/2024-01-04_end_of__year__up.../appendix.R +++ /dev/null @@ -1,73 +0,0 @@ -library(dplyr) -# markdown helpers -------------------------------------------------------- - -markdown_appendix <- function(name, content) { - paste(paste("##", name, "{.appendix}"), " ", content, sep = "\n") -} -markdown_link <- function(text, path) { - paste0("[", text, "](", path, ")") -} - - - -# worker functions -------------------------------------------------------- - -insert_source <- function(repo_spec, name, - collection = "posts", - branch = "main", - host = "https://github.com", - text = "Source", - file_name) { - path <- paste( - host, - repo_spec, - "tree", - branch, - collection, - name, - file_name, - sep = "/" - ) - return(markdown_link(text, path)) -} - -insert_timestamp <- function(tzone = Sys.timezone()) { - time <- lubridate::now(tzone = tzone) - stamp <- as.character(time, tz = tzone, usetz = TRUE) - return(stamp) -} - -insert_lockfile <- function(repo_spec, name, - collection = "posts", - branch = "main", - host = "https://github.com", - text = "Session info") { - path <- path <- "https://pharmaverse.github.io/blog/session_info.html" - - return(markdown_link(text, path)) -} - - - -# top level function ------------------------------------------------------ - -insert_appendix <- function(repo_spec, name, collection = "posts", file_name) { - appendices <- paste( - markdown_appendix( - name = "Last updated", - content = insert_timestamp() - ), - " ", - markdown_appendix( - name = "Details", - content = paste( - insert_source(repo_spec, name, collection, file_name = file_name), - # get renv information, - insert_lockfile(repo_spec, name, collection), - sep = ", " - ) - ), - sep = "\n" - ) - knitr::asis_output(appendices) -} diff --git a/posts/2024-01-04_end_of__year__up.../end_of__year__update_from_the__pharmaverse__council.qmd b/posts/2024-01-04_end_of__year__up.../end_of__year__update_from_the__pharmaverse__council.qmd deleted file mode 100644 index ba69e2aa..00000000 --- a/posts/2024-01-04_end_of__year__up.../end_of__year__update_from_the__pharmaverse__council.qmd +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: "End of Year Update from the pharmaverse Council" -author: - - name: Mike Stackhouse -description: "2023 Was a big year - let's talk about it!" -date: "2024-01-04" -# please do not use any non-default categories. -# You can find the default categories in the repository README.md -categories: [Community] -# feel free to change the image -image: "pharmaverse.PNG" - ---- - - - -```{r setup, include=FALSE} -long_slug <- "2024-01-04_end_of__year__up..." -# renv::use(lockfile = "renv.lock") -``` - - - -## 2023 Was a Big Year - -This was a big year for open-source work in clinical submissions in general. We saw Roche speak about shifting to an [open-source backbone for clinical trials](https://www.youtube.com/watch?v=nqJsLSLd39A). Novo Nordisk spoke publicly of an [R based submission to the FDA](https://www.youtube.com/watch?v=t33dS17QHuA). These are true marks of progress being made in R becoming a first class language for clinical reporting. - -Back in August, Nicholas Eugenio released a [blog post](https://pharmaverse.github.io/blog/posts/2023-10-10_pharmaverse_story/pharmaverse_story.html) on the history of pharmaverse. It's funny to think about the fact that only 3 years ago, the idea of cross organization collaboration on R packages and building a community around this in the clinical world was just a conversation between friends. Since then, we have a community of more than 1200 people on Slack, 350 on LinkedIn, interest from over 150 organizations, and over 30 packages. If 2020 through 2022 was the birth of pharmaverse, 2023 was finding our identity as a community. For the council, 2024 will be about continuing to mature and find more ways that we can continue to support the community. - -## What We Accomplished - -One of our biggest moves in 2023 was to form our partnership with [PHUSE](https://phuse.global/PHUSE_Open_Source_Technology). This latched us into an existing community with shared values and a platform that helps us continue to build the pharmaverse community. At the [PHUSE EU Connect](https://www.phuse-events.org/attend/frontend/reg/thome.csp?pageID=11403&eventID=19&traceRedir=2) we had our first opportunity to host a pharmaverse meetup and bring together pharmaverse contributors in person. Additionally, there was an excellent panel session highlighting our use and adoption of open-source across industry, including the pharmaceutical, commercial, and software perspectives. As we move forward, we'll continue to use this platform to find ways we can host events and encourage collaboration within the pharmaverse community. - -This year our community was also able to launch new platforms to share updates and knowledge throughout the industry. The [pharmaverse examples](https://pharmaverse.github.io/examples/) webpage was launched to show pharmaverse packages in action, and the [pharmaverse blog](https://pharmaverse.github.io/blog/) (which I'm using right here!) provides a platform to share updates and community news. - -## Where Next? - -Back in October, I had the opportunity to do an interview with Michael Rimler for the [PHUSE video series](https://youtu.be/F3vehIoJgdA?si=80p0pKobZqjlXChj) Open Source Technologies in Clinical Data Analytics. The last question he asked me was what I expect the state of data analytics in life science to be in 2 to 3 years. My response was that when that time comes, I hope I couldn't have predicted where we would be - because back in 2020 I could never have predicted where we are now. The progress we've made is unbelievable, and the pharmaverse community has played a huge role in getting us where we are today. For the pharmaverse community, I hope to see that progress continue as we move into next year. As a council, our goal is to continue to mature this community. How can we support and foster collaboration between our organizations? How can we leverage this platform to drive the industry forward? - -For you as an individual, there's always an opportunity to get involved - and you don't have to be a package developer to contribute. You can [join a working group](https://pharmaverse.org/contribute/wg/), write [examples](https://github.com/pharmaverse/examples), or author a [blog post](https://github.com/pharmaverse/blog). Furthermore, you can get started with the pharmaverse packages, provide feedback via issues, and advocate for their use within your own organization. The pharmaverse community doesn't exist without you, and we're happy to have you all here to help us build this together. - -## P.S. - -At PHUSE US Connect 2024 this coming February, be on the lookout for one of the keynote presentations from Michael Rimler and Ross Farrugia! We hope to see you there! - -Here's to a 2024 full of progress and collaboration! - - - -```{r, echo=FALSE, message=FALSE} -source("appendix.R") -insert_appendix( - repo_spec = "pharmaverse/blog", - name = long_slug, - # file_name should be the name of your file - file_name = list.files() %>% stringr::str_subset(".qmd") %>% first() -) -``` diff --git a/posts/2024-01-04_end_of__year__up.../pharmaverse.PNG b/posts/2024-01-04_end_of__year__up.../pharmaverse.PNG deleted file mode 100644 index 7ee40c66663af65701ffddeb9d0a21f7932056ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20440 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 From a853e2f67b4bffeccd3cc9d185e6590d79669f28 Mon Sep 17 00:00:00 2001 From: bms63 Date: Wed, 30 Oct 2024 10:57:27 -0400 Subject: [PATCH 02/23] feat: #231 data blog init --- README.md | 3 +- .../zzz_DO_NOT_EDIT_data__packages/appendix.R | 73 +++++++++++++++++++ .../data__packages.qmd | 44 +++++++++++ 3 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 posts/zzz_DO_NOT_EDIT_data__packages/appendix.R create mode 100644 posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd diff --git a/README.md b/README.md index e7739111..ed6f651c 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,8 @@ install.packages(c("jsonlite", "rtables", "teal", "riskmetric", - "tidyCDISC")) + "tidyCDISC", + "mirai")) ``` ## How to Use the `blog` Docker Image for Local Development diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/appendix.R b/posts/zzz_DO_NOT_EDIT_data__packages/appendix.R new file mode 100644 index 00000000..c69926b0 --- /dev/null +++ b/posts/zzz_DO_NOT_EDIT_data__packages/appendix.R @@ -0,0 +1,73 @@ +suppressMessages(library(dplyr)) +# markdown helpers -------------------------------------------------------- + +markdown_appendix <- function(name, content) { + paste(paste("##", name, "{.appendix}"), " ", content, sep = "\n") +} +markdown_link <- function(text, path) { + paste0("[", text, "](", path, ")") +} + + + +# worker functions -------------------------------------------------------- + +insert_source <- function(repo_spec, name, + collection = "posts", + branch = "main", + host = "https://github.com", + text = "Source", + file_name) { + path <- paste( + host, + repo_spec, + "tree", + branch, + collection, + name, + file_name, + sep = "/" + ) + return(markdown_link(text, path)) +} + +insert_timestamp <- function(tzone = Sys.timezone()) { + time <- lubridate::now(tzone = tzone) + stamp <- as.character(time, tz = tzone, usetz = TRUE) + return(stamp) +} + +insert_lockfile <- function(repo_spec, name, + collection = "posts", + branch = "main", + host = "https://github.com", + text = "Session info") { + path <- path <- "https://pharmaverse.github.io/blog/session_info.html" + + return(markdown_link(text, path)) +} + + + +# top level function ------------------------------------------------------ + +insert_appendix <- function(repo_spec, name, collection = "posts", file_name) { + appendices <- paste( + markdown_appendix( + name = "Last updated", + content = insert_timestamp() + ), + " ", + markdown_appendix( + name = "Details", + content = paste( + insert_source(repo_spec, name, collection, file_name = file_name), + # get renv information, + insert_lockfile(repo_spec, name, collection), + sep = ", " + ) + ), + sep = "\n" + ) + knitr::asis_output(appendices) +} diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd new file mode 100644 index 00000000..d6b95212 --- /dev/null +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -0,0 +1,44 @@ +--- +title: "Data Packages" +author: + - name: My Name +description: "" +# Note that the date below will be auto-updated when the post is merged. +date: "2024-10-30" +# Please do not use any non-default categories. +# You can find the default categories in the repository README.md +categories: [Metadata, SDTM, ADaM, TLG, Shiny, Community, Conferences, Submissions, Technical] +# Feel free to change the image +image: "pharmaverse.png" + +--- + + + +```{r setup, include=FALSE} +long_slug <- "zzz_DO_NOT_EDIT_data__packages" +# renv::use(lockfile = "renv.lock") +``` + + + +## pharmaversesdtm + +## pharmaverseadam + +## meddatasets + +https://www.linkedin.com/posts/alexander-krannich_meddatasets-ugcPost-7257309409335296000-NHri?utm_source=share&utm_medium=member_ios + + + + +```{r, echo=FALSE} +source("appendix.R") +insert_appendix( + repo_spec = "pharmaverse/blog", + name = long_slug, + # file_name should be the name of your file + file_name = list.files() %>% stringr::str_subset(".qmd") %>% first() +) +``` From 52ab69221d9f28045627a8770d60b5ab642ee6f9 Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Sat, 14 Dec 2024 17:40:31 +0000 Subject: [PATCH 03/23] docs: working on title and image --- .../data__packages.qmd | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index d6b95212..090d4ad4 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -1,13 +1,13 @@ --- -title: "Data Packages" +title: "Where is the data!?!" author: - - name: My Name -description: "" + - name: Ben Straub +description: "Compilation of Data and Data Packages useful for Clinical Reporting" # Note that the date below will be auto-updated when the post is merged. -date: "2024-10-30" +date: "2024-12-30" # Please do not use any non-default categories. # You can find the default categories in the repository README.md -categories: [Metadata, SDTM, ADaM, TLG, Shiny, Community, Conferences, Submissions, Technical] +categories: [SDTM, ADaM, Community, Technical] # Feel free to change the image image: "pharmaverse.png" @@ -17,7 +17,7 @@ image: "pharmaverse.png" ```{r setup, include=FALSE} long_slug <- "zzz_DO_NOT_EDIT_data__packages" -# renv::use(lockfile = "renv.lock") + ``` From 424ded7dfd5f4ff7c913d3e45ada82ae6c17807c Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Sat, 14 Dec 2024 18:38:19 +0000 Subject: [PATCH 04/23] feat: #231 laid out 4 packages...was hoping for more! --- media/data.jpg | Bin 0 -> 21551 bytes posts/zzz_DO_NOT_EDIT_data__packages/data.jpg | Bin 0 -> 21551 bytes .../data__packages.qmd | 33 +++++++++++++++--- 3 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 media/data.jpg create mode 100644 posts/zzz_DO_NOT_EDIT_data__packages/data.jpg diff --git a/media/data.jpg b/media/data.jpg new file mode 100644 index 0000000000000000000000000000000000000000..caa4612ccc06b9298ab318c22a95016dfe07c7a1 GIT binary patch literal 21551 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 Z*UQqwC4qT27_6+O40!Yi0C@Cp0RC=1 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 Z*UQqwC4qT2 +The purpose of this blog is to maintain an ongoing list of CDISC-specific data packages or packages with CDISC data that could be useful for Clinical Reporting. The packages could have a comprehensive set of data or just small toy examples for specific functions or vignettes. + +Feel free to get in touch with me for additions or clarifications. + ## pharmaversesdtm +A set of Study Data Tabulation Model (SDTM) datasets from the Clinical Data Interchange Standards Consortium (CDISC) pilot project used for testing and developing Analysis Data Model (ADaM) datasets inside the pharmaverse family of packages. A CDISC Pilot was conducted somewhere between 2008 and 2010. This is that Pilot data but slowly brought up to current CDISC standards. + +Most common SDTM datasets can be found as well as some specific disease area SDTMs. + +Available on CRAN and package is actively maintained on [GitHub](https://github.com/pharmaverse/pharmaversesdtm) + ## pharmaverseadam -## meddatasets +A set of Analysis Data Model (ADaM) datasets constructed using the Study Data Tabulation Model (SDTM) datasets contained in the 'pharmaversesdtm' package and the template scripts from the {admiral} family of packages. + +Available on CRAN and package is actively maintained on [GitHub](https://github.com/pharmaverse/pharmaversesdtm) + +## admiral + +A toolbox for programming Clinical Data Interchange Standards 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. + +Limited datasets like `ADSL`, `ADLB` but the template scripts availabe in this package are used to create the ADaM data in {pharmaverseadam} + +Available on CRAN and package is actively maintained on [GitHub](https://github.com/pharmaverse/admiral) + +## random.cdisc.data + +A set of functions to create random Analysis Data Model (ADaM) datasets and cached dataset. ADaM dataset specifications are described by the Clinical Data Interchange Standards Consortium (CDISC) Analysis Data Model Team. -https://www.linkedin.com/posts/alexander-krannich_meddatasets-ugcPost-7257309409335296000-NHri?utm_source=share&utm_medium=member_ios +Available on CRAN and package is actively maintained on [GitHub](https://github.com/insightsengineering/random.cdisc.data) From 17e4d03d05a151b3a62e68dd91c71ce6c5e0ee9d Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 14 Feb 2025 13:21:02 +0000 Subject: [PATCH 05/23] feat: #231 added NEST and SafetyData --- .../data__packages.qmd | 51 +++++++++++++------ 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index d19b52d3..ef1ced75 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -1,10 +1,10 @@ --- -title: "Where is the data!?!" +title: "Collecting all the data!" author: - name: Ben Straub -description: "Compilation of Data and Data Packages useful for Clinical Reporting" +description: "Where is all the data? A sordid attempt to continuously compile, collate, consolidate, and curate open Data useful for Clinical Reporting" # Note that the date below will be auto-updated when the post is merged. -date: "2024-12-30" +date: "2025-02-14" # Please do not use any non-default categories. # You can find the default categories in the repository README.md categories: [SDTM, ADaM, Community, Technical] @@ -23,38 +23,57 @@ link::auto(keep_pkg_prefix = FALSE) -The purpose of this blog is to maintain an ongoing list of CDISC-specific data packages or packages with CDISC data that could be useful for Clinical Reporting. The packages could have a comprehensive set of data or just small toy examples for specific functions or vignettes. +The purpose of this blog is to maintain an ongoing list of publicly available data packages, data in packages or data sources that align to CDISC standards. My hope is that this could be a resource for: -Feel free to get in touch with me for additions or clarifications. +* those intrepid individuals lookings to showcase new documentation, functions, packages and other tools +* those enterprising individuals wanting to learn more about CDISC standards and exploring open-source tools. -## pharmaversesdtm +The data presented below is just a start and is presented in order of how I found them. Feel free to get in touch with me for additions or clarifications. + +## pharmaversesdtm: SDTM Test Data for the 'Pharmaverse' Family of Packages A set of Study Data Tabulation Model (SDTM) datasets from the Clinical Data Interchange Standards Consortium (CDISC) pilot project used for testing and developing Analysis Data Model (ADaM) datasets inside the pharmaverse family of packages. A CDISC Pilot was conducted somewhere between 2008 and 2010. This is that Pilot data but slowly brought up to current CDISC standards. -Most common SDTM datasets can be found as well as some specific disease area SDTMs. +Most common SDTM datasets can be found as well as some specific disease area SDTMs that are not avaiable in the CDISC pilot datasets. -Available on CRAN and package is actively maintained on [GitHub](https://github.com/pharmaverse/pharmaversesdtm) +Available on [CRAN](https://cloud.r-project.org/web/packages/pharmaversesdtm/index.html) and package is actively maintained on [GitHub](https://github.com/pharmaverse/pharmaversesdtm) -## pharmaverseadam +## pharmaverseadam: ADaM Test Data for the 'Pharmaverse' Family of Packages -A set of Analysis Data Model (ADaM) datasets constructed using the Study Data Tabulation Model (SDTM) datasets contained in the 'pharmaversesdtm' package and the template scripts from the {admiral} family of packages. +A set of Analysis Data Model (ADaM) datasets constructed using the Study Data Tabulation Model (SDTM) datasets contained in the {pharmaversesdtm} package and the template scripts from the {admiral} family of packages. -Available on CRAN and package is actively maintained on [GitHub](https://github.com/pharmaverse/pharmaversesdtm) +Available on [CRAN](https://cloud.r-project.org/web/packages/pharmaverseadam/index.html) and package is actively maintained on [GitHub](https://github.com/pharmaverse/pharmaversesdtm) -## admiral +## admiral: ADaM in R Asset Library A toolbox for programming Clinical Data Interchange Standards 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. -Limited datasets like `ADSL`, `ADLB` but the template scripts availabe in this package are used to create the ADaM data in {pharmaverseadam} +Limited datasets like `ADSL`, `ADLB` but the template scripts availabe in this package are used to create the ADaMs in {pharmaverseadam} -Available on CRAN and package is actively maintained on [GitHub](https://github.com/pharmaverse/admiral) +Available on [CRAN](https://cran.r-project.org/web/packages/admiral/index.html) and package is actively maintained on [GitHub](https://github.com/pharmaverse/admiral) -## random.cdisc.data +## random.cdisc.data: Create Random ADaM Datasets A set of functions to create random Analysis Data Model (ADaM) datasets and cached dataset. ADaM dataset specifications are described by the Clinical Data Interchange Standards Consortium (CDISC) Analysis Data Model Team. -Available on CRAN and package is actively maintained on [GitHub](https://github.com/insightsengineering/random.cdisc.data) +Available on [CRAN](https://cran.r-project.org/web/packages/random.cdisc.data/index.html) and package is actively maintained on [GitHub](https://github.com/insightsengineering/random.cdisc.data) + +## safetyData: Clinical Trial Data + +The package reformats PHUSE's sample ADaM and SDTM datasets as an R package following R data best practices. + +PHUSE released the data under the permissive MIT license, so reuse with attribution is encouraged. The data are especially useful for prototyping new tables, listings and figures and for writing automated tests. + +Basic documentation for each data file is provided in help files (e.g. ?adam_adae). Full data specifications in the form of define.xml files can also be found at the links above (pdf for ADaM and pdf for SDTM). + +Available on [CRAN](https://cran.r-project.org/web/packages/random.cdisc.data/index.html) and package is available on [GitHub](https://github.com/SafetyGraphics/safetyData) + + +## NEST: Accelerating Clinical Reporting + +[NEST](https://insightsengineering.github.io/nest/) is a collection of open-sourced R packages, which enables faster and more efficient insights generation under clinical research settings, for both exploratory and regulatory purposes. +They have a wealth of data generated for documentation, demonstrations and testing. You can find all the datasets and what packages they live in [here](https://insightsengineering.r-universe.dev/datasets). From e7622c45c60acb2a29c3c2d6b796d2cb7dd037bc Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 14 Feb 2025 13:25:04 +0000 Subject: [PATCH 06/23] chore: a post was accidently deleted --- .../2024-01-04_end_of__year__up.../appendix.R | 73 ++++++++++++++++++ ..._update_from_the__pharmaverse__council.qmd | 58 ++++++++++++++ .../pharmaverse.PNG | Bin 0 -> 20440 bytes 3 files changed, 131 insertions(+) create mode 100644 posts/2024-01-04_end_of__year__up.../appendix.R create mode 100644 posts/2024-01-04_end_of__year__up.../end_of__year__update_from_the__pharmaverse__council.qmd create mode 100644 posts/2024-01-04_end_of__year__up.../pharmaverse.PNG diff --git a/posts/2024-01-04_end_of__year__up.../appendix.R b/posts/2024-01-04_end_of__year__up.../appendix.R new file mode 100644 index 00000000..ac352f6a --- /dev/null +++ b/posts/2024-01-04_end_of__year__up.../appendix.R @@ -0,0 +1,73 @@ +library(dplyr) +# markdown helpers -------------------------------------------------------- + +markdown_appendix <- function(name, content) { + paste(paste("##", name, "{.appendix}"), " ", content, sep = "\n") +} +markdown_link <- function(text, path) { + paste0("[", text, "](", path, ")") +} + + + +# worker functions -------------------------------------------------------- + +insert_source <- function(repo_spec, name, + collection = "posts", + branch = "main", + host = "https://github.com", + text = "Source", + file_name) { + path <- paste( + host, + repo_spec, + "tree", + branch, + collection, + name, + file_name, + sep = "/" + ) + return(markdown_link(text, path)) +} + +insert_timestamp <- function(tzone = Sys.timezone()) { + time <- lubridate::now(tzone = tzone) + stamp <- as.character(time, tz = tzone, usetz = TRUE) + return(stamp) +} + +insert_lockfile <- function(repo_spec, name, + collection = "posts", + branch = "main", + host = "https://github.com", + text = "Session info") { + path <- path <- "https://pharmaverse.github.io/blog/session_info.html" + + return(markdown_link(text, path)) +} + + + +# top level function ------------------------------------------------------ + +insert_appendix <- function(repo_spec, name, collection = "posts", file_name) { + appendices <- paste( + markdown_appendix( + name = "Last updated", + content = insert_timestamp() + ), + " ", + markdown_appendix( + name = "Details", + content = paste( + insert_source(repo_spec, name, collection, file_name = file_name), + # get renv information, + insert_lockfile(repo_spec, name, collection), + sep = ", " + ) + ), + sep = "\n" + ) + knitr::asis_output(appendices) +} diff --git a/posts/2024-01-04_end_of__year__up.../end_of__year__update_from_the__pharmaverse__council.qmd b/posts/2024-01-04_end_of__year__up.../end_of__year__update_from_the__pharmaverse__council.qmd new file mode 100644 index 00000000..ba69e2aa --- /dev/null +++ b/posts/2024-01-04_end_of__year__up.../end_of__year__update_from_the__pharmaverse__council.qmd @@ -0,0 +1,58 @@ +--- +title: "End of Year Update from the pharmaverse Council" +author: + - name: Mike Stackhouse +description: "2023 Was a big year - let's talk about it!" +date: "2024-01-04" +# please do not use any non-default categories. +# You can find the default categories in the repository README.md +categories: [Community] +# feel free to change the image +image: "pharmaverse.PNG" + +--- + + + +```{r setup, include=FALSE} +long_slug <- "2024-01-04_end_of__year__up..." +# renv::use(lockfile = "renv.lock") +``` + + + +## 2023 Was a Big Year + +This was a big year for open-source work in clinical submissions in general. We saw Roche speak about shifting to an [open-source backbone for clinical trials](https://www.youtube.com/watch?v=nqJsLSLd39A). Novo Nordisk spoke publicly of an [R based submission to the FDA](https://www.youtube.com/watch?v=t33dS17QHuA). These are true marks of progress being made in R becoming a first class language for clinical reporting. + +Back in August, Nicholas Eugenio released a [blog post](https://pharmaverse.github.io/blog/posts/2023-10-10_pharmaverse_story/pharmaverse_story.html) on the history of pharmaverse. It's funny to think about the fact that only 3 years ago, the idea of cross organization collaboration on R packages and building a community around this in the clinical world was just a conversation between friends. Since then, we have a community of more than 1200 people on Slack, 350 on LinkedIn, interest from over 150 organizations, and over 30 packages. If 2020 through 2022 was the birth of pharmaverse, 2023 was finding our identity as a community. For the council, 2024 will be about continuing to mature and find more ways that we can continue to support the community. + +## What We Accomplished + +One of our biggest moves in 2023 was to form our partnership with [PHUSE](https://phuse.global/PHUSE_Open_Source_Technology). This latched us into an existing community with shared values and a platform that helps us continue to build the pharmaverse community. At the [PHUSE EU Connect](https://www.phuse-events.org/attend/frontend/reg/thome.csp?pageID=11403&eventID=19&traceRedir=2) we had our first opportunity to host a pharmaverse meetup and bring together pharmaverse contributors in person. Additionally, there was an excellent panel session highlighting our use and adoption of open-source across industry, including the pharmaceutical, commercial, and software perspectives. As we move forward, we'll continue to use this platform to find ways we can host events and encourage collaboration within the pharmaverse community. + +This year our community was also able to launch new platforms to share updates and knowledge throughout the industry. The [pharmaverse examples](https://pharmaverse.github.io/examples/) webpage was launched to show pharmaverse packages in action, and the [pharmaverse blog](https://pharmaverse.github.io/blog/) (which I'm using right here!) provides a platform to share updates and community news. + +## Where Next? + +Back in October, I had the opportunity to do an interview with Michael Rimler for the [PHUSE video series](https://youtu.be/F3vehIoJgdA?si=80p0pKobZqjlXChj) Open Source Technologies in Clinical Data Analytics. The last question he asked me was what I expect the state of data analytics in life science to be in 2 to 3 years. My response was that when that time comes, I hope I couldn't have predicted where we would be - because back in 2020 I could never have predicted where we are now. The progress we've made is unbelievable, and the pharmaverse community has played a huge role in getting us where we are today. For the pharmaverse community, I hope to see that progress continue as we move into next year. As a council, our goal is to continue to mature this community. How can we support and foster collaboration between our organizations? How can we leverage this platform to drive the industry forward? + +For you as an individual, there's always an opportunity to get involved - and you don't have to be a package developer to contribute. You can [join a working group](https://pharmaverse.org/contribute/wg/), write [examples](https://github.com/pharmaverse/examples), or author a [blog post](https://github.com/pharmaverse/blog). Furthermore, you can get started with the pharmaverse packages, provide feedback via issues, and advocate for their use within your own organization. The pharmaverse community doesn't exist without you, and we're happy to have you all here to help us build this together. + +## P.S. + +At PHUSE US Connect 2024 this coming February, be on the lookout for one of the keynote presentations from Michael Rimler and Ross Farrugia! We hope to see you there! + +Here's to a 2024 full of progress and collaboration! + + + +```{r, echo=FALSE, message=FALSE} +source("appendix.R") +insert_appendix( + repo_spec = "pharmaverse/blog", + name = long_slug, + # file_name should be the name of your file + file_name = list.files() %>% stringr::str_subset(".qmd") %>% first() +) +``` diff --git a/posts/2024-01-04_end_of__year__up.../pharmaverse.PNG b/posts/2024-01-04_end_of__year__up.../pharmaverse.PNG new file mode 100644 index 0000000000000000000000000000000000000000..7ee40c66663af65701ffddeb9d0a21f7932056ef GIT binary patch literal 20440 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 literal 0 HcmV?d00001 From 88c99b83828a3087e92d6e556c0d6e2db09747f2 Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 14 Feb 2025 13:24:39 -0500 Subject: [PATCH 07/23] Update posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd Co-authored-by: Edoardo Mancini <53403957+manciniedoardo@users.noreply.github.com> --- posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index ef1ced75..30368223 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -25,7 +25,7 @@ link::auto(keep_pkg_prefix = FALSE) The purpose of this blog is to maintain an ongoing list of publicly available data packages, data in packages or data sources that align to CDISC standards. My hope is that this could be a resource for: -* those intrepid individuals lookings to showcase new documentation, functions, packages and other tools +* those intrepid individuals looking to showcase new documentation, functions, packages and other tools * those enterprising individuals wanting to learn more about CDISC standards and exploring open-source tools. The data presented below is just a start and is presented in order of how I found them. Feel free to get in touch with me for additions or clarifications. From 995c6f091fd267bd88aabd281098a3a6ffba9b83 Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 14 Feb 2025 13:24:50 -0500 Subject: [PATCH 08/23] Update posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd Co-authored-by: Edoardo Mancini <53403957+manciniedoardo@users.noreply.github.com> --- posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index 30368223..70a5d529 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -28,7 +28,7 @@ The purpose of this blog is to maintain an ongoing list of publicly available da * those intrepid individuals looking to showcase new documentation, functions, packages and other tools * those enterprising individuals wanting to learn more about CDISC standards and exploring open-source tools. -The data presented below is just a start and is presented in order of how I found them. Feel free to get in touch with me for additions or clarifications. +The data presented below is just a start and is shown in order of how I found them. Feel free to get in touch with me for additions or clarifications. ## pharmaversesdtm: SDTM Test Data for the 'Pharmaverse' Family of Packages From 71433915367f764c51bb9e11d46fa137a0738ce8 Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 14 Feb 2025 13:25:09 -0500 Subject: [PATCH 09/23] Update posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd Co-authored-by: Edoardo Mancini <53403957+manciniedoardo@users.noreply.github.com> --- posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index 70a5d529..389f7dc9 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -32,7 +32,7 @@ The data presented below is just a start and is shown in order of how I found th ## pharmaversesdtm: SDTM Test Data for the 'Pharmaverse' Family of Packages -A set of Study Data Tabulation Model (SDTM) datasets from the Clinical Data Interchange Standards Consortium (CDISC) pilot project used for testing and developing Analysis Data Model (ADaM) datasets inside the pharmaverse family of packages. A CDISC Pilot was conducted somewhere between 2008 and 2010. This is that Pilot data but slowly brought up to current CDISC standards. +A set of Study Data Tabulation Model (SDTM) datasets from the Clinical Data Interchange Standards Consortium (CDISC) pilot project used for testing and developing Analysis Data Model (ADaM) datasets inside the pharmaverse family of packages. A CDISC Pilot was conducted somewhere between 2008 and 2010. This is that Pilot data but slowly brought up to current CDISC standards. There are also new datasets in the same style (same `STUDYID`, `USUBJID`s, etc.) added by the {admiral} and the {admiral} extension package teams that provide test data for new domains or specific TAs (ophthalmology, vaccines, etc.). Most common SDTM datasets can be found as well as some specific disease area SDTMs that are not avaiable in the CDISC pilot datasets. From 1bd884f2d2657c7ae46ab53b7e3ca89291425ab8 Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 14 Feb 2025 13:25:40 -0500 Subject: [PATCH 10/23] Update posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd Co-authored-by: Edoardo Mancini <53403957+manciniedoardo@users.noreply.github.com> --- posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index 389f7dc9..baa0b52c 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -48,7 +48,7 @@ Available on [CRAN](https://cloud.r-project.org/web/packages/pharmaverseadam/ind A toolbox for programming Clinical Data Interchange Standards 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. -Limited datasets like `ADSL`, `ADLB` but the template scripts availabe in this package are used to create the ADaMs in {pharmaverseadam} +Limited datasets like `ADSL`, `ADLB` are provided in {admiral}, because the template scripts available in this package are used to create the ADaMs in {pharmaverseadam}. Available on [CRAN](https://cran.r-project.org/web/packages/admiral/index.html) and package is actively maintained on [GitHub](https://github.com/pharmaverse/admiral) From 35e996aeb3e22c1dd36e0c57045412c883e7b8f5 Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 14 Feb 2025 13:25:54 -0500 Subject: [PATCH 11/23] Update posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd Co-authored-by: Edoardo Mancini <53403957+manciniedoardo@users.noreply.github.com> --- posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index baa0b52c..7429db51 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -50,7 +50,7 @@ A toolbox for programming Clinical Data Interchange Standards Consortium (CDISC) Limited datasets like `ADSL`, `ADLB` are provided in {admiral}, because the template scripts available in this package are used to create the ADaMs in {pharmaverseadam}. -Available on [CRAN](https://cran.r-project.org/web/packages/admiral/index.html) and package is actively maintained on [GitHub](https://github.com/pharmaverse/admiral) +Available on [CRAN](https://cran.r-project.org/web/packages/admiral/index.html). This package is actively maintained on [GitHub](https://github.com/pharmaverse/admiral). ## random.cdisc.data: Create Random ADaM Datasets From eb71bcac09cf8669c2fec0981bdff47fdd79353c Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 14 Feb 2025 13:26:12 -0500 Subject: [PATCH 12/23] Update posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd Co-authored-by: Edoardo Mancini <53403957+manciniedoardo@users.noreply.github.com> --- posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index 7429db51..3dedca6e 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -54,7 +54,7 @@ Available on [CRAN](https://cran.r-project.org/web/packages/admiral/index.html). ## random.cdisc.data: Create Random ADaM Datasets -A set of functions to create random Analysis Data Model (ADaM) datasets and cached dataset. ADaM dataset specifications are described by the Clinical Data Interchange Standards Consortium (CDISC) Analysis Data Model Team. +A set of functions to create random Analysis Data Model (ADaM) datasets and cached datasets. ADaM dataset specifications are described by the Clinical Data Interchange Standards Consortium (CDISC) Analysis Data Model Team. These datasets are used to power the [TLG Catalog](https://insightsengineering.github.io/tlg-catalog/stable/), though the NEST team is actively substituting them for {pharmaverseadam} datasets instead - see [a recent blog post] about this very effort! Available on [CRAN](https://cran.r-project.org/web/packages/random.cdisc.data/index.html) and package is actively maintained on [GitHub](https://github.com/insightsengineering/random.cdisc.data) From 0a4e4f5e1c0aaa428477964c7e1d2f7b1348bcf7 Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 14 Feb 2025 13:26:25 -0500 Subject: [PATCH 13/23] Update posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd Co-authored-by: Edoardo Mancini <53403957+manciniedoardo@users.noreply.github.com> --- posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index 3dedca6e..450a8fad 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -56,7 +56,7 @@ Available on [CRAN](https://cran.r-project.org/web/packages/admiral/index.html). A set of functions to create random Analysis Data Model (ADaM) datasets and cached datasets. ADaM dataset specifications are described by the Clinical Data Interchange Standards Consortium (CDISC) Analysis Data Model Team. These datasets are used to power the [TLG Catalog](https://insightsengineering.github.io/tlg-catalog/stable/), though the NEST team is actively substituting them for {pharmaverseadam} datasets instead - see [a recent blog post] about this very effort! -Available on [CRAN](https://cran.r-project.org/web/packages/random.cdisc.data/index.html) and package is actively maintained on [GitHub](https://github.com/insightsengineering/random.cdisc.data) +Available on [CRAN](https://cran.r-project.org/web/packages/random.cdisc.data/index.html). The package is actively maintained on [GitHub](https://github.com/insightsengineering/random.cdisc.data) by the NEST team. ## safetyData: Clinical Trial Data From 6c1c3b3047f129e4266c123efea6b1562a8bc31e Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 14 Feb 2025 13:26:34 -0500 Subject: [PATCH 14/23] Update posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd Co-authored-by: Edoardo Mancini <53403957+manciniedoardo@users.noreply.github.com> --- posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index 450a8fad..7aa9a8e0 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -66,7 +66,7 @@ PHUSE released the data under the permissive MIT license, so reuse with attribut Basic documentation for each data file is provided in help files (e.g. ?adam_adae). Full data specifications in the form of define.xml files can also be found at the links above (pdf for ADaM and pdf for SDTM). -Available on [CRAN](https://cran.r-project.org/web/packages/random.cdisc.data/index.html) and package is available on [GitHub](https://github.com/SafetyGraphics/safetyData) +Available on [CRAN](https://cran.r-project.org/web/packages/random.cdisc.data/index.html). The package is available on [GitHub](https://github.com/SafetyGraphics/safetyData). ## NEST: Accelerating Clinical Reporting From 90216c22b8843b220f009624d689d96dcf7d217b Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 14 Feb 2025 19:05:13 +0000 Subject: [PATCH 15/23] feat: feedback from review; nice image at the end --- README.md | 3 ++- .../data__packages.qmd | 22 +++++++++++++------ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index ed6f651c..f85f0645 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,8 @@ install.packages(c("jsonlite", "teal", "riskmetric", "tidyCDISC", - "mirai")) + "mirai", + "admiralmetabolic")) ``` ## How to Use the `blog` Docker Image for Local Development diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index 7aa9a8e0..23728218 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -2,7 +2,7 @@ title: "Collecting all the data!" author: - name: Ben Straub -description: "Where is all the data? A sordid attempt to continuously compile, collate, consolidate, and curate open Data useful for Clinical Reporting" +description: "Where is all the data? An intermittent attempt to continuously compile, collate, consolidate, and curate publicly available CDISC data useful for Clinical Reporting in R" # Note that the date below will be auto-updated when the post is merged. date: "2025-02-14" # Please do not use any non-default categories. @@ -28,21 +28,21 @@ The purpose of this blog is to maintain an ongoing list of publicly available da * those intrepid individuals looking to showcase new documentation, functions, packages and other tools * those enterprising individuals wanting to learn more about CDISC standards and exploring open-source tools. -The data presented below is just a start and is shown in order of how I found them. Feel free to get in touch with me for additions or clarifications. +The data presented below is just a start and is shown in order of how I found them. Feel free to get in touch with me for additions or clarifications. You can find me on pharmaverse slack by joining [here](https://pharmaverse.slack.com/). In fact, I encourgage, nay implore you, to get in touch as this can't be all the data that we have available to us! -## pharmaversesdtm: SDTM Test Data for the 'Pharmaverse' Family of Packages +## pharmaversesdtm: SDTM Test Data for the Pharmaverse Family of Packages A set of Study Data Tabulation Model (SDTM) datasets from the Clinical Data Interchange Standards Consortium (CDISC) pilot project used for testing and developing Analysis Data Model (ADaM) datasets inside the pharmaverse family of packages. A CDISC Pilot was conducted somewhere between 2008 and 2010. This is that Pilot data but slowly brought up to current CDISC standards. There are also new datasets in the same style (same `STUDYID`, `USUBJID`s, etc.) added by the {admiral} and the {admiral} extension package teams that provide test data for new domains or specific TAs (ophthalmology, vaccines, etc.). Most common SDTM datasets can be found as well as some specific disease area SDTMs that are not avaiable in the CDISC pilot datasets. -Available on [CRAN](https://cloud.r-project.org/web/packages/pharmaversesdtm/index.html) and package is actively maintained on [GitHub](https://github.com/pharmaverse/pharmaversesdtm) +Available on [CRAN](https://cloud.r-project.org/web/packages/pharmaversesdtm/index.html). Package is actively maintained on [GitHub](https://github.com/pharmaverse/pharmaversesdtm) -## pharmaverseadam: ADaM Test Data for the 'Pharmaverse' Family of Packages +## pharmaverseadam: ADaM Test Data for the Pharmaverse Family of Packages A set of Analysis Data Model (ADaM) datasets constructed using the Study Data Tabulation Model (SDTM) datasets contained in the {pharmaversesdtm} package and the template scripts from the {admiral} family of packages. -Available on [CRAN](https://cloud.r-project.org/web/packages/pharmaverseadam/index.html) and package is actively maintained on [GitHub](https://github.com/pharmaverse/pharmaversesdtm) +Available on [CRAN](https://cloud.r-project.org/web/packages/pharmaverseadam/index.html). Package is actively maintained on [GitHub](https://github.com/pharmaverse/pharmaversesdtm) ## admiral: ADaM in R Asset Library @@ -54,7 +54,9 @@ Available on [CRAN](https://cran.r-project.org/web/packages/admiral/index.html). ## random.cdisc.data: Create Random ADaM Datasets -A set of functions to create random Analysis Data Model (ADaM) datasets and cached datasets. ADaM dataset specifications are described by the Clinical Data Interchange Standards Consortium (CDISC) Analysis Data Model Team. These datasets are used to power the [TLG Catalog](https://insightsengineering.github.io/tlg-catalog/stable/), though the NEST team is actively substituting them for {pharmaverseadam} datasets instead - see [a recent blog post] about this very effort! +A set of functions to create *random* Analysis Data Model (ADaM) datasets and cached datasets. You can find a list of the possible random CDISC datasets generated [here](https://insightsengineering.github.io/random.cdisc.data/main/index.html). ADaM dataset specifications are described by the Clinical Data Interchange Standards Consortium (CDISC) Analysis Data Model Team. These datasets are used to power the [TLG Catalog](https://insightsengineering.github.io/tlg-catalog/stable/), though the NEST team is actively substituting them for {pharmaverseadam} datasets instead - see [a recent blog post] about this very effort! + + Available on [CRAN](https://cran.r-project.org/web/packages/random.cdisc.data/index.html). The package is actively maintained on [GitHub](https://github.com/insightsengineering/random.cdisc.data) by the NEST team. @@ -75,6 +77,12 @@ Available on [CRAN](https://cran.r-project.org/web/packages/random.cdisc.data/in They have a wealth of data generated for documentation, demonstrations and testing. You can find all the datasets and what packages they live in [here](https://insightsengineering.r-universe.dev/datasets). +## Collect all the data! + +As you can see the list is short! Let me know if you have sources (big and small) and we can add to this list. + +![](data.jpg){fig-align="center" width="220"} + ```{r, echo=FALSE} From f6a50f69eb6189dd4c42bdf3e2c7f77712f1442d Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 14 Feb 2025 19:09:43 +0000 Subject: [PATCH 16/23] chore: new spelling for the cause --- inst/WORDLIST.txt | 9 ++++++--- posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/inst/WORDLIST.txt b/inst/WORDLIST.txt index 04fd82e1..f1b7444e 100644 --- a/inst/WORDLIST.txt +++ b/inst/WORDLIST.txt @@ -102,11 +102,11 @@ AMBUL amd amongst Amor -Anders analysing analytics Analytics aNCA +Anders anderson andre André @@ -170,6 +170,7 @@ BILIBL bindCache bindEvent biogen +Biologics biomarker Biomarker biometrics @@ -851,6 +852,7 @@ s sa sadchla Sadchla +safetyData Salzburg Sanofi Sanofi's @@ -940,6 +942,7 @@ Syon tagList tamor targetdatatype +TAs Taşlıçukur Tatiana TatianaPXL @@ -1016,8 +1019,8 @@ ubuntu ucla ug ui -uk UI +uk Ul un Unardi @@ -1073,8 +1076,8 @@ WAISTHGT waisthip WAISTHIP Walkowiak -Walkthrough walkthrough +Walkthrough wasm WAWA wayback diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index 23728218..6b19a8c2 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -28,13 +28,13 @@ The purpose of this blog is to maintain an ongoing list of publicly available da * those intrepid individuals looking to showcase new documentation, functions, packages and other tools * those enterprising individuals wanting to learn more about CDISC standards and exploring open-source tools. -The data presented below is just a start and is shown in order of how I found them. Feel free to get in touch with me for additions or clarifications. You can find me on pharmaverse slack by joining [here](https://pharmaverse.slack.com/). In fact, I encourgage, nay implore you, to get in touch as this can't be all the data that we have available to us! +The data presented below is just a start and is shown in order of how I found them. Feel free to get in touch with me for additions or clarifications. You can find me on pharmaverse slack by joining [here](https://pharmaverse.slack.com/). In fact, I encourage, nay implore you, to get in touch as this can't be all the data that we have available to us! ## pharmaversesdtm: SDTM Test Data for the Pharmaverse Family of Packages A set of Study Data Tabulation Model (SDTM) datasets from the Clinical Data Interchange Standards Consortium (CDISC) pilot project used for testing and developing Analysis Data Model (ADaM) datasets inside the pharmaverse family of packages. A CDISC Pilot was conducted somewhere between 2008 and 2010. This is that Pilot data but slowly brought up to current CDISC standards. There are also new datasets in the same style (same `STUDYID`, `USUBJID`s, etc.) added by the {admiral} and the {admiral} extension package teams that provide test data for new domains or specific TAs (ophthalmology, vaccines, etc.). -Most common SDTM datasets can be found as well as some specific disease area SDTMs that are not avaiable in the CDISC pilot datasets. +Most common SDTM datasets can be found as well as some specific disease area SDTMs that are not available in the CDISC pilot datasets. Available on [CRAN](https://cloud.r-project.org/web/packages/pharmaversesdtm/index.html). Package is actively maintained on [GitHub](https://github.com/pharmaverse/pharmaversesdtm) @@ -62,7 +62,7 @@ Available on [CRAN](https://cran.r-project.org/web/packages/random.cdisc.data/in ## safetyData: Clinical Trial Data -The package reformats PHUSE's sample ADaM and SDTM datasets as an R package following R data best practices. +The package re-formats PHUSE's sample ADaM and SDTM datasets as an R package following R data best practices. PHUSE released the data under the permissive MIT license, so reuse with attribution is encouraged. The data are especially useful for prototyping new tables, listings and figures and for writing automated tests. From 1267256ccc457050ff12bff897dd533760ee0e0a Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 14 Feb 2025 19:24:55 +0000 Subject: [PATCH 17/23] chore: did the LLm fix my action? --- .github/workflows/link_check.yml | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/.github/workflows/link_check.yml b/.github/workflows/link_check.yml index c5b1b846..bab440ed 100644 --- a/.github/workflows/link_check.yml +++ b/.github/workflows/link_check.yml @@ -1,20 +1,33 @@ name: Links (Fail Fast) on: - pull_request: {branches: ['main']} + pull_request: + branches: + - main + jobs: linkChecker: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: switch .qmd to .md - run: 'source("R/switch.R")' - shell: Rscript -e + - name: Set up R # Install R from CRAN + uses: r-lib/actions/setup-r@v2 + with: + r-version: '4.3.3' # You can specify a different R version if needed + + - name: Install R packages + run: | + Rscript -e 'install.packages("fs")' + shell: bash + + - name: Switch .qmd to .md + run: Rscript R/switch.R + shell: bash - name: Link Checker uses: lycheeverse/lychee-action@v1.8.0 with: fail: true env: - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From dbb20e726e50b17b841f961ed2e4268cc925846c Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 14 Feb 2025 19:27:58 +0000 Subject: [PATCH 18/23] chore: test linkchecker --- posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index 6b19a8c2..ae5c1fff 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -58,7 +58,7 @@ A set of functions to create *random* Analysis Data Model (ADaM) datasets and ca -Available on [CRAN](https://cran.r-project.org/web/packages/random.cdisc.data/index.html). The package is actively maintained on [GitHub](https://github.com/insightsengineering/random.cdisc.data) by the NEST team. +Available on [CRAN](https://cran.r-project.org/web/packas/random.cdisc.data/index.html). The package is actively maintained on [GitHub](https://github.com/insightsengineering/random.cdisc.data) by the NEST team. ## safetyData: Clinical Trial Data From cc58dd11551cd8e0a8f8dec315b68330f7a20aa5 Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 14 Feb 2025 19:31:32 +0000 Subject: [PATCH 19/23] fix: linkchecker back in action; chore: words again --- inst/WORDLIST.txt | 1 + posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/inst/WORDLIST.txt b/inst/WORDLIST.txt index f1b7444e..9f6a52d8 100644 --- a/inst/WORDLIST.txt +++ b/inst/WORDLIST.txt @@ -853,6 +853,7 @@ sa sadchla Sadchla safetyData +SafetyGraphics Salzburg Sanofi Sanofi's diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index ae5c1fff..6b19a8c2 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -58,7 +58,7 @@ A set of functions to create *random* Analysis Data Model (ADaM) datasets and ca -Available on [CRAN](https://cran.r-project.org/web/packas/random.cdisc.data/index.html). The package is actively maintained on [GitHub](https://github.com/insightsengineering/random.cdisc.data) by the NEST team. +Available on [CRAN](https://cran.r-project.org/web/packages/random.cdisc.data/index.html). The package is actively maintained on [GitHub](https://github.com/insightsengineering/random.cdisc.data) by the NEST team. ## safetyData: Clinical Trial Data From c699f1a147abcaf6e78c2731b74689b3f3762402 Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Mon, 17 Feb 2025 07:29:04 -0500 Subject: [PATCH 20/23] Update posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd Co-authored-by: StefanThoma <40463122+StefanThoma@users.noreply.github.com> --- posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index 6b19a8c2..78a1b984 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -42,7 +42,7 @@ Available on [CRAN](https://cloud.r-project.org/web/packages/pharmaversesdtm/ind A set of Analysis Data Model (ADaM) datasets constructed using the Study Data Tabulation Model (SDTM) datasets contained in the {pharmaversesdtm} package and the template scripts from the {admiral} family of packages. -Available on [CRAN](https://cloud.r-project.org/web/packages/pharmaverseadam/index.html). Package is actively maintained on [GitHub](https://github.com/pharmaverse/pharmaversesdtm) +Available on [CRAN](https://cloud.r-project.org/web/packages/pharmaverseadam/index.html). This package is actively maintained on [GitHub](https://github.com/pharmaverse/pharmaversesdtm) ## admiral: ADaM in R Asset Library From 0e7b9eee2a04592b23879565febbd63734540bfa Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Mon, 17 Feb 2025 07:29:11 -0500 Subject: [PATCH 21/23] Update posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd Co-authored-by: StefanThoma <40463122+StefanThoma@users.noreply.github.com> --- posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index 78a1b984..329d1ea4 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -36,7 +36,7 @@ A set of Study Data Tabulation Model (SDTM) datasets from the Clinical Data Inte Most common SDTM datasets can be found as well as some specific disease area SDTMs that are not available in the CDISC pilot datasets. -Available on [CRAN](https://cloud.r-project.org/web/packages/pharmaversesdtm/index.html). Package is actively maintained on [GitHub](https://github.com/pharmaverse/pharmaversesdtm) +Available on [CRAN](https://cloud.r-project.org/web/packages/pharmaversesdtm/index.html). This package is actively maintained on [GitHub](https://github.com/pharmaverse/pharmaversesdtm) ## pharmaverseadam: ADaM Test Data for the Pharmaverse Family of Packages From f10aa2c10f1fa7c27f14a89ecb679675af49dcf9 Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Mon, 17 Feb 2025 07:32:07 -0500 Subject: [PATCH 22/23] Update data__packages.qmd --- posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd index 329d1ea4..c8e7ec7d 100644 --- a/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd +++ b/posts/zzz_DO_NOT_EDIT_data__packages/data__packages.qmd @@ -54,7 +54,7 @@ Available on [CRAN](https://cran.r-project.org/web/packages/admiral/index.html). ## random.cdisc.data: Create Random ADaM Datasets -A set of functions to create *random* Analysis Data Model (ADaM) datasets and cached datasets. You can find a list of the possible random CDISC datasets generated [here](https://insightsengineering.github.io/random.cdisc.data/main/index.html). ADaM dataset specifications are described by the Clinical Data Interchange Standards Consortium (CDISC) Analysis Data Model Team. These datasets are used to power the [TLG Catalog](https://insightsengineering.github.io/tlg-catalog/stable/), though the NEST team is actively substituting them for {pharmaverseadam} datasets instead - see [a recent blog post] about this very effort! +A set of functions to create *random* Analysis Data Model (ADaM) datasets and cached datasets. You can find a list of the possible random CDISC datasets generated [here](https://insightsengineering.github.io/random.cdisc.data/main/index.html). ADaM dataset specifications are described by the Clinical Data Interchange Standards Consortium (CDISC) Analysis Data Model Team. These datasets are used to power the [TLG Catalog](https://insightsengineering.github.io/tlg-catalog/stable/), though the NEST team is actively substituting them for {pharmaverseadam} datasets instead - see [a recent blog post](https://pharmaverse.github.io/blog/posts/2025-01-15_nest_and_pharmaverseadam/nest_and_pharmaverseadam.html) about this very effort! From 978dcbdca17f2b1d0f906605c2aa0ca4b0494ba0 Mon Sep 17 00:00:00 2001 From: Edoardo Mancini Date: Mon, 17 Feb 2025 13:57:07 +0000 Subject: [PATCH 23/23] #231 attempt to split out update-post-dates and publishing workflows --- .github/workflows/publish.yml | 34 ++------------------- .github/workflows/update_post_dates.yml | 40 +++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 31 deletions(-) create mode 100644 .github/workflows/update_post_dates.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 8d7014a4..05a1ffe3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -2,39 +2,11 @@ name: Quarto Publish on: workflow_dispatch: - push: - branches: [main] + repository_dispatch: + types: [quarto-publish] jobs: - Update-post-dates: - runs-on: ubuntu-latest - container: - image: "rocker/tidyverse:4.2.1" - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - ref: main - token: ${{ secrets.PHARMAVERSE_BOT }} - - - name: Run update_post_dates - run: Rscript R/update_post_dates.R # running the R script with Rscript - - - name: Configure Git safe directory - run: git config --global --add safe.directory /__w/blog/blog - - - name: Commit and push changes - uses: stefanzweifel/git-auto-commit-action@v5 - with: - commit_message: "[skip actions] Auto-update blog post date" - file_pattern: "." - commit_user_name: github-actions - commit_user_email: >- - 41898282+github-actions[bot]@users.noreply.github.com - continue-on-error: true - - build-deploy: - needs: Update-post-dates + build_deploy: runs-on: ubuntu-latest permissions: contents: write diff --git a/.github/workflows/update_post_dates.yml b/.github/workflows/update_post_dates.yml new file mode 100644 index 00000000..5cc0437e --- /dev/null +++ b/.github/workflows/update_post_dates.yml @@ -0,0 +1,40 @@ +name: Update Post Dates + +on: + workflow_dispatch: + push: + branches: [main] + +jobs: + update_post_dates: + runs-on: ubuntu-latest + container: + image: "rocker/tidyverse:4.2.1" + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + ref: main + token: ${{ secrets.PHARMAVERSE_BOT }} + + - name: Run update_post_dates + run: Rscript R/update_post_dates.R # running the R script with Rscript + + - name: Configure Git safe directory + run: git config --global --add safe.directory /__w/blog/blog + + - name: Commit and push changes + uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: "[skip actions] Auto-update blog post date" + file_pattern: "." + commit_user_name: github-actions + commit_user_email: >- + 41898282+github-actions[bot]@users.noreply.github.com + continue-on-error: true + + - name: Trigger Quarto Publish + uses: peter-evans/repository-dispatch@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + event-type: quarto-publish