APF-Statistikleitertreffen

Open-Source & R Implementierung @Pharma & CRO

Friedrich Pahlke

2024-04-19

Motivation

Ziel und Anforderungen

Ziel der verschiedenen statistischen Programmiertätigkeiten:

  • Einreichung bei einer Behörde (z.B. FDA Submission)

Dabei ist sicherzustellen:

  • Vertrauenswürdigkeit der eingesetzten Software (reliability)
  • Nachvollziehbarkeit der Ergebnisse
  • Reproduzierbarkeit der Ergebnisse

Idealer Weg dorthin:

  • Effizient: begrenzte Ressourcen
  • Motivierend: Mitarbeiterbindung
  • Nachhaltig: hohe Akzeptanz, langer Lebenszyklus

Herausforderungen

  • Verschiedene Akteure (Stakeholder) arbeiten an den Daten und R-Skripten

  • Verschiedene Akteure (Stakeholder) arbeiten an den Daten und R-Skripten
  • Ganz verschiedene “Schulen”, Vorkentnisse, Vorlieben, Routinen, etc.

  • Verschiedene Akteure (Stakeholder) arbeiten an den Daten und R-Skripten
  • Ganz verschiedene “Schulen”, Vorkentnisse, Vorlieben, Routinen, etc.
  • Das Ergebnis als Gesamtpaket für die Submission soll ein möglichst einheitliches Format haben

  • Ganz verschiedene “Schulen”, Vorkentnisse, Vorlieben, Routinen, etc.
  • Das Ergebnis als Gesamtpaket für die Submission soll ein möglichst einheitliches Format haben
  • Egal von welcher Firma die Submission kommt, die Behörde muss damit arbeiten können

  • Das Ergebnis als Gesamtpaket für die Submission soll ein möglichst einheitliches Format haben
  • Egal von welcher Firma die Submission kommt, die Behörde muss damit arbeiten können
  • Noch besser: Die Behörde kennt das Format und den Code-Stil
    \(\rightarrow\) Sie fühlt sich damit wohl

“Open-Source & R @Pharma & CRO”

Was bedeuten die o.g. Anforderungen im Pharma Kontext?

  • Vertrauenswürdigkeit der eingesetzten Software \(\rightarrow\) Validierung
  • Nachvollziehbarkeit der Ergebnisse \(\rightarrow\) Good Software Engineering Practice
  • Reproduzierbarkeit der Ergebnisse \(\rightarrow\) Alle Stakeholder müssen die R-Skripte selber neu durchlaufen lassen können und müssen die geichen Resultate erhalten

Vertrauenswürdigkeit der eingesetzten Software

  • Die FDA hat ausgesagt, dass die eingesetzten R Pakete “reliable” sein müssen.
  • Das kann durch eine klassische formale Validierung wie bei “rpact” gezeigt werden
  • Oder durch einen nicht so formalen “Risik Assessment” Ansatz, wie er z.B. vom R Validation Hub (pharmar.org/risk) propagiert wird

Nachvollziehbarkeit der Ergebnisse

  • Statistische Programmierer müssen “Good Software Engineering Practices” anwenden
  • Dazu gehört z.B. die Anwendung von “Clean Code Rules”:
    • Wartbarkeit: Der Code ist lesbar und verständlich und hat eine reduzierte Komplexität, d. h., es ist einfacher, Fehler zu beheben.
    • Erweiterbarkeit: Die Architektur ist einfacher, sauberer und ausdrucksvoller, d. h., es ist einfacher, den Funktionsumfang zu erweitern und das Risiko von Fehlern zu reduzieren.
    • Performance: Der Code läuft schneller, benötigt weniger Speicher oder ist einfacher zu optimieren.

Nachvollziehbarkeit der Ergebnisse

  • “Good Software Engineering Practices” und “Clean Code Rules”…
  • Spätestens an dieser Stelle wird klar, dass Statistiker immer mehr Knowhow aus den Computerwissenschaften benötigen

Reproduzierbarkeit

  • Bisherige Lösungen zur Gewährleistung der Reproduzierbarkeit von R-Skripten erfordern oft komplexe Setup-Prozesse, die nur von Experten durchgeführt und gewartet werden können.
  • Docker-Container sind ein bekanntes Beispiel. Sie beinhalten das gesamte Betriebssystem sowie alle benötigten Abhängigkeiten und Softwarekomponenten.
  • Diese Ansätze sind jedoch schwerfällig und ressourcenintensiv, z.B. im Hinblick auf Manpower und Speicherplatz, was z.B. ihre Implementierung und Archivierung teuer macht und das Teilen erschwert.
  • Leichtgewichtige Lösungsansätze?

Lösungsvorschlag: Trainings und Tools

Recherche: Es gibt keine Trainings für die speziellen Anforderungen in der Pharma-Forschung.

Wichtige Akzeptanzkriterien für neu zu entwickelnde Trainings:

  • Vielfältiges Angebot
  • Modular aufgebaut für alle Vorkenntnisse
  • Zeit-/Ortsflexibilität: Wahlweise Online oder On-Site
  • Lernziele speziell abgestimmt und zugeschnitten für Pharma

Lösungsvorschlag: Trainings und Tools

Ein integriertes und leichgewichtiges Tool, welches die Erfüllung der “Computer Science” Anforderungen leicht macht, fehlt ebenso:

  • Offline (R Paket, RStudio Addin) und Online (R Shiny Applikation)
  • Sicherstellung der Code-Qualität
  • Vereinheitlichung des Coding Stils und des Formats
  • Hilfe bei der Transition von proprietären Lösungen zu Open Source (R)
  • Effiziente Zusammenarbeit im Team
  • \(\rightarrow\) Mehr Zeit für statistische Methodik

Integriertes Tool

Die Idee für so ein neues Open-Source Tool ist schon sehr konkret:

  • R Paket mit RStudio Erweiterung (Addin) basierend auf einer Shiny GUI
  • Der User gibt wenige Basis-Informationen wie z.B. den Projektnamen ein
  • Das Tool erzeugt dann eine standardisierte Ordner- und Datei-Struktur sowie verschiedene Templates; das Ganze ist sofort “lauffähig”
  • Das besondere ist: Es wird dafür kein neuer Standard erdacht, sondern es wird der bereits exististierende und etablierte Standard für die Entwicklung von R Paketen benutzt

Integriertes Tool

Die Nutzung des bereits bestehenden Standards hat viele Vorteile:

  • Er ist weltweit bekannt und akzeptiert
  • Noch nicht so erfahrene R Programmierer lernen automatisch “Good Software Engineering Practice for R”, da das Tool genau das sicher stellt und dem User hilft; sie können nach einiger Zeit selber “reliable” R Pakete entwickeln
  • Erfahrene R Programmierer finden sich in jedem neuen Pharma-Projekt sofort zurecht, egal ob einfache Fallzahlplanung, komplexe Simulation oder aufwändige Datenanalyse

  • Eine effiziente Qualitätskontrolle des Projekt-spezifischen R-Codes wird mitgeliefert:
    • Strenge CRAN-Package-Checks
    • Automatisch generierte Unit Tests stellen sicher, dass Code-Änderungen keine unerwünschten Nebeneffekte haben
    • Risiko-Metriken lassen sich automatisch prüfen
    • Die Code-Dokumentation kann automatisch in ein Handbuch zum Code überführt werden

  • Das Dependency-Management ist integriert, d.h. alle Abhängigkeiten sind sauber definiert (R Paket: renv)
  • Das Code-Styling kann automatisch optimiert und vereinheitlicht werden, d.h. jeder kann weiterhin in seinem eigenen Stil programmieren
  • Verfügbare Risk Assessment Tools können direkt benutzt werden
  • Bei Nutzung des Tools ist eine steile Lernkurve zu erwarten, ohne die verschiedenen User mit ihren ganz individuellen Kenntnissen und Vorlieben zu verschrecken oder zu überfordern
  • Leichtgewichtige Lösung, die die Herausforderung bei der Wurzel angeht und nicht nur Symptome bekämpft

Realisierung

  • Ist das Interesse an einem gemeinsamen, Firmen-übergreifenden Projekt da?
  • Wie könnten wir das realisieren?
  • Das Erstellen guter Trainings ist sehr zeitaufwändig
  • Ein neues R Paket, welches das Lernen guter Programmierpraxis im Bereich Pharma unterstützt und den Output vereinheitlicht sollte Bestandteil des Projekts sein, idealerweise mit RStudio Erweiterung (Addin basierend auf einer Shiny GUI)

Mögliche Projektphasen

  • Sammlung spezifischer Bedarfe der am Projekt beteiligten Firmen
  • Priorisierung von Trainingsmodulen
  • Erstellung erster Trainingsmodule
  • Implementierung eines Prototypen des integrierten Tools
  • Pilot-Training in einer Firma unter Nutzung des integrierten Tools
  • Systematische Feedbacks \(\rightarrow\) Optimierung der Module und des integrierten Tools
  • Weitere Trainings in anderen Firmen
  • Online-Stellen von Trainingsmodulen
  • Veröffentlichung der 1. Version des Tools auf GitHub und CRAN

Wer könnte an der Realisierung aktiv mitarbeiten

  • Daniel Sabanes Bove (RCONIS): Trainings und Integriertes Tool (R-Paket-Entwicklung)
  • Friedrich Pahlke (RPACT, RCONIS): Trainings und Integriertes Tool (R-Paket/Shiny-App-Entwicklung)
  • Lars Andersen (BI, RPACT): Trainings
  • ???

Das Training “Good Software Engineering Practice for R”, initial entwickelt von Daniel, Kevin und Friedrich, ist bisher in Basel, Shanghai und San Francisco gelaufen (siehe openstatsware.org); dieses Jahr: UseR!-Konferenz, Salzburg (Daniel und Friedrich).

Diskussion