Welcome!

End-to-End Submissions
in R with the Pharmaverse

posit::conf(2025)

2025-09-16

End-to-End Submissions in R with the Pharmaverse

  • Find a seat where you can see the screen!

  • Join the Posit Cloud workspace: link

  • Join the Slack from pharmaverse.slack.com/

  • WiFI: Posit Conf 2025 | conf2025

posit::conf(2025) Things to Know

  • 🚻 Gender-neutral bathroom: LL2 next to Chicago A

  • 🧘 Meditation/prayer room: LL2 Chicago A

  • 🤱 Lactation room: LL2 Chicago B

  • 🎉 Welcome reception: Tonight 5-7 pm, LL2 Grand Hall West

  • 🐠 Aquarium Night: Tomorrow 7-10 pm, Georgia Aquarium

posit::conf(2025) Social Media

  • Red lanyards available to those who don’t wish to be photographed

  • #PositConf2025 for all things conf

Instructors

Daniel Sjoberg

Becca Krouse



Ram Ganapathy

Ben X. Straub

Your turn!

Who are you?

What do you do?

What do you hope to get out of today?

Workshop outline

What to expect from this workshop

  • Learn about what the Pharmaverse is

  • R packages to support Clinical Reporting in R

    • Create SDTM from raw data (CDASH and non-CDASH formats)

    • Create ADaM datasets from SDTM

    • Multiple ways to create tables

    • Learn about ARDs

  • Hands-on Exercises & Discussions

Workshop Expectations

  • Ask questions!

  • Be respectful to each other and yourself

Your Background

Welcome to the pharmaverse!

  • https://pharmaverse.org/

  • Goals

    • Align pharma industry on a set of open source packages based in R to deliver the clinical data pipeline

    • Design, collaborate, and deliver new solutions where suitable tools do not exist

E2E Clinical Reporting Packages

https://pharmaverse.org/e2eclinical/

Not that kind of -verse

library(pharmaverse)
Error in library(pharmaverse): there is no package called 'pharmaverse'
  • The pharmaverse is a collection of open-source tools

  • But we would not want to attempt to load all of them at once.

Industry working on a similar goal

  • Standards (ie CDISC) means standard tools can be created and shared

  • Collaboration in the “post competitive” space means everyone has access to free solutions

  • Team and Regulators seeing consistent packages being used across multiple teams speeds up development and review

pharmaverse: TRUE or FALSE?

End-to-End with Barb!

Barb!

  • Yes, she is a cat!

  • Yes, she is cute!

  • Yes, she is enrolled in the clinical trial we will be walking through today.

  • Named after Ben’s mother-in-law? Perhaps!

End-to-End with Barb!

Barb is on a journey from raw data to the TFLs. At various points we will be finding Barb in our data as we transform from Raw to TFL.

Barb!

End-to-End with Barb!

Barb is on a journey from raw data to the TFLs. At various points we will be finding Barb in our data as we transform from Raw to TFL.

Barb!

End-to-End with Barb!

Barb is on a journey from raw data to the TFLs. At various points we will be finding Barb in our data as we transform from Raw to TFL.

Barb!

End-to-End: The Data

Working environment

  • For consistency, we will be working in Posit Cloud

  • Everything has been installed and set up for you

  • You can also opt to work in local RStudio

  • Following the course, all content from this workshop will be available on the course website and GitHub

Quick warm-up

05:00
  • If using Posit Cloud:

    • Navigate to Posit Cloud link

    • Click on the Project to make a personal copy

  • If using local RStudio:

    • Exercises can be found here: https://posit-conf-2025.github.io/pharmaverse/exercises/exercises.html
  • Open exercises/01-intro.R

  • Complete the exercise

Solution for 00-intro.R

Using dplyr:

  • From the ADSL dataset:
  • Subset to the safety population (SAFFL == “Y”)
  • calculate the number of unique subjects in each treatment group (TRT01A)
library(dplyr)

pharmaverseadam::adsl |> 
  filter(SAFFL == "Y") |> 
  count(TRT01A)
# A tibble: 3 × 2
  TRT01A                   n
  <chr>                <int>
1 Placebo                 86
2 Xanomeline High Dose    72
3 Xanomeline Low Dose     96