使用 Amazon SageMaker 上的 RStudio 为生命科学行业 PlatoBlockchain 数据智能创建监管提交。 垂直搜索。 人工智能。

使用 Amazon SageMaker 上的 RStudio 为生命科学行业创建监管提交

寻求美国食品药品监督管理局 (FDA) 或日本药品和医疗器械管理局 (PMDA) 等监管机构批准在市场上销售其药品的制药公司必须提交证据,证明其药品对其预期用途是安全有效的利用。 一个由医师、统计学家、化学家、药理学家和其他临床科学家组成的团队审查临床试验提交数据并提出标签。 如果审查确定有足够的统计证据证明该药物的健康益处大于风险,则该药物被批准销售。

临床试验提交包由表格数据、分析数据、试验元数据和由统计表格、列表和数字组成的统计报告组成。 就美国 FDA 而言,电子通用技术文件 (eCTD) 是向 FDA 生物制品评估与研究中心 (CBER) 和药物评估与研究中心提交申请、修订、补充和报告的标准格式。 CDER)。 对于 FDA 和日本 PMDA,在 CDISC 标准数据制表模型 (SDTM) 中提交制表数据、在 CDISC 分析数据集模型 (ADaM) 中提交分析数据和在 CDISC Define-XML 中提交试验元数据是一项监管要求(基于操作数据模型(ODM))。

在这篇文章中,我们将演示如何在 亚马逊SageMaker 创建此类监管提交可交付成果。 这篇文章描述了临床试验提交过程,我们如何获取临床试验研究数据、制表和分析数据,然后创建统计报告——汇总表、数据列表和数据 (TLF)。 这种方法可以让制药客户无缝连接到存储在其 AWS 环境中的临床数据,使用 R 对其进行处理,并帮助加速临床试验研究过程。

药物开发过程

药物开发过程大致可分为五个主要步骤,如下图所示。

一种药物从大约 10 个潜在分子中获得成功批准平均需要 15-1 年和大约 3-10,000 亿美元。 在研究的早期阶段(药物发现阶段),确定有前景的候选药物,然后进一步进入临床前研究。 在临床前阶段,研究人员试图通过执行来找出药物的毒性 细胞/组织 实验室中的实验和 体内 动物实验。 临床前测试后,药物进入临床试验研究阶段,必须在人体上进行测试以确定其安全性和有效性。 研究人员设计临床试验并在临床试验方案中详细说明研究计划。 他们定义了不同的临床研究阶段——从确定药物安全性和剂量的小型 1 期研究,到确定药物疗效和副作用的更大的 2 期试验,再到确定药物疗效、安全性和副作用的更大的 3 期和 4 期试验。监测不良反应。 在成功进行人体临床试验后,药物赞助商提交新药申请 (NDA) 以销售该药物。 监管机构审查所有数据,与申办方合作处理处方标签信息,并批准药物。 药物批准后,监管机构审查上市后的安全报告,以确保整个产品的安全性。

1997 年,临床数据交换标准联盟 (CDISC) 作为志愿者团体成立,这是一个由制药公司、CRO、生物技术、学术机构、医疗保健提供者和政府机构组成的全球性非营利组织。 CDISC 已发布数据标准,以简化从收集到提交的数据流,并促进合作伙伴和提供商之间的数据交换。 CDISC 发布了以下标准:

  • CDASH(临床数据采集标准协调) – 收集数据的标准
  • SDTM(研究数据制表模型) – 提交表格数据的标准
  • ADaM(分析数据模型) – 分析数据标准
  • SEND(非临床数据交换标准) – 非临床数据标准
  • PRM(协议表示模型) – 协议标准

这些标准可以帮助训练有素的审稿人使用标准工具更有效、更快速地分析数据,从而缩短药物审批时间。 使用 SDTM 格式提交所有表格数据是美国 FDA 和日本 PMDA 的监管要求。

R用于临床试验研究提交

SAS 和 R 是制药行业最常用的两种统计分析软件。 当 CDISC 开始开发 SDTM 标准时,SAS 在制药行业和 FDA 中几乎普遍使用。 然而,由于 R 是开源的,并且不断添加新的包和库,现在 R 越来越受欢迎。 学生主要在他们的学术和研究期间使用 R,他们将这种对 R 的熟悉带到他们的工作中。 R 还为新兴技术提供支持,例如高级深度学习集成。

AWS 等云提供商现在已成为制药客户托管其基础设施的首选平台。 AWS 还提供 SageMaker 等托管服务,让您可以轻松地在云中创建、训练和部署机器学习 (ML) 模型。 SageMaker 还允许通过 Web 浏览器从任何地方访问 RStudio IDE。 这篇文章详细介绍了统计程序员和生物统计学家如何将他们的临床数据引入 R 环境、如何运行 R 代码以及如何存储结果。 我们提供的代码片段允许临床试验数据科学家将 XPT 文件引入 R 环境,为 SDTM 和 ADaM 创建 R 数据帧,最后创建可以存储在 亚马逊简单存储服务 (Amazon S3) 对象存储桶。

SageMaker 上的 RStudio

2 年 2021 月 XNUMX 日,AWS 与 RStudio PBC 公布 一般可用 SageMaker 上的 RStudio,业界第一个完全托管的云端 RStudio Workbench IDE。 您现在可以携带当前的 RStudio 许可证,只需几个简单的步骤即可轻松地将您的自我管理的 RStudio 环境迁移到 SageMaker。 要了解有关这一激动人心的合作的更多信息,请查看 在 Amazon SageMaker 上宣布 RStudio.

除了 RStudio Workbench,R 开发人员的 RStudio 套件还提供 RStudio Connect 和 RStudio Package Manager。 RStudio Connect 旨在允许数据科学家发布见解、仪表板和 Web 应用程序. 它可以轻松地从数据科学家的复杂工作中分享 ML 和数据科学见解,并将其交到决策者手中。 RStudio Connect 还使托管和管理内容变得简单且可扩展以供广泛使用。

解决方案概述

在以下部分中,我们将讨论如何在 SageMaker 上的 RStudio 中从远程存储库或 S3 存储桶导入原始数据。 也可以直接连接 亚马逊关系数据库服务 (Amazon RDS) 和数据仓库,如 亚马逊Redshift (见 将 R 与 Amazon Redshift 连接起来) 直接来自 RStudio; 但是,这超出了本文的范围。 从几个不同的来源摄取数据后,我们对其进行处理并为表创建 R 数据框。 然后我们将表数据帧转换为 RTF 文件并将结果存储回 S3 存储桶中。 然后,这些输出可以潜在地用于监管提交目的,前提是帖子中使用的 R 包已经过验证,可用于客户的监管提交。

在 SageMaker 上设置 RStudio

有关在您的环境中在 SageMaker 上设置 RStudio 的说明,请参阅 在 SageMaker 上开始使用 RStudio. 确保 SageMaker 上 RStudio 的执行角色有权将数据下载和上传到存储数据的 S3 存储桶。 要了解有关如何在 SageMaker 上使用 RStudio 管理 R 包和发布分析的更多信息,请参阅 宣布在 SageMaker 上为数据科学家提供完全托管的 RStudio.

将数据提取到 RStudio

在这一步中,我们从各种来源摄取数据,以使其可用于我们的 R 会话。 我们以 SAS XPT 格式导入数据; 但是,如果您想摄取其他格式的数据,该过程是相似的。 在 SageMaker 上使用 RStudio 的优势之一是,如果源数据存储在您的 AWS 账户中,则 SageMaker 可以使用本机访问数据 AWS身份和访问管理 (IAM) 角色。

访问存储在远程存储库中的数据

在这一步中,我们从 FDA 的 GitHub 存储库. 我们创建一个名为的本地目录 data 在 RStudio 环境中存储数据和下载人口统计数据(dm.xpt) 来自远程存储库。 在此上下文中,本地目录是指在您的私有 Amazon EFS 存储上创建的目录,该目录默认附加到您的 R 会话环境。 请参阅以下代码:

######################################################
# Step 1.1 – Ingest Data from Remote Data Repository #
######################################################

# Remote Data Path 
raw_data_url = “https://github.com/FDA/PKView/raw/master/Installation%20Package/OCP/data/clinical/DRUG000/0000/m5/datasets/test001/tabulations/sdtm”
raw_data_name = “dm.xpt”

#Create Local Directory to store downloaded files
dir.create(“data”)
local_file_location <- paste0(getwd(),”/data/”)
download.file(raw_data_url, paste0(local_file_location,raw_data_name))

此步骤完成后,您可以看到 dm.xpt 通过导航到下载 , data, dm.xpt文件.

访问存储在 Amazon S3 中的数据

在这一步中,我们下载存储在我们账户的 S3 存储桶中的数据。 我们已将 FDA 的 GitHub 存储库中的内容复制到名为 aws-sagemaker-rstudio 对于这个例子。 请参阅以下代码:

#####################################################
# Step 1.2 - Ingest Data from S3 Bucket             #
#####################################################
library("reticulate")

SageMaker = import('sagemaker')
session <- SageMaker$Session()

s3_bucket = "aws-sagemaker-rstudio"
s3_key = "DRUG000/test001/tabulations/sdtm/pp.xpt"

session$download_data(local_file_location, s3_bucket, s3_key)

步骤完成后,您可以看到 pp.xpt 通过导航到下载 , data, pp.xpt.

处理 XPT 数据

现在我们已经在 R 环境中获得了 SAS XPT 文件,我们需要将它们转换为 R 数据帧并进行处理。 我们使用 haven 库来读取 XPT 文件。 我们合并 CDISC SDTM 数据集 dmpp 创建 ADPP 数据集。 然后我们使用 ADPP 数据框创建一个汇总统计表。 然后以 RTF 格式导出汇总表。

首先,使用 XPT 文件读取 read_xpt 避风港图书馆的功能。 然后使用 sqldf 的功能 sqldf 图书馆。 请参阅以下代码:

########################################################
# Step 2.1 - Read XPT files. Create Analysis dataset.  #
########################################################

library(haven)
library(sqldf)


# Read XPT Files, convert them to R data frame
dm = read_xpt("data/dm.xpt")
pp = read_xpt("data/pp.xpt")

# Create ADaM dataset
adpp = sqldf("select a.USUBJID
                    ,a.PPCAT as ACAT
                    ,a.PPTESTCD
                    ,a.PPTEST
                    ,a.PPDTC
                    ,a.PPSTRESN as AVAL
                    ,a.VISIT as AVISIT
                    ,a.VISITNUM as AVISITN
                    ,b.sex
                from pp a 
           left join dm b 
                  on a.usubjid = b.usubjid
             ")

然后,使用来自 Tplyrdplyr 图书馆:

########################################################
# Step 2.2 - Create output table                       #
########################################################

library(Tplyr)
library(dplyr)

t = tplyr_table(adpp, SEX) %>% 
  add_layer(
    group_desc(AVAL, by = "Area under the concentration-time curve", where= PPTESTCD=="AUC") %>% 
      set_format_strings(
        "n"        = f_str("xx", n),
        "Mean (SD)"= f_str("xx.x (xx.xx)", mean, sd),
        "Median"   = f_str("xx.x", median),
        "Q1, Q3"   = f_str("xx, xx", q1, q3),
        "Min, Max" = f_str("xx, xx", min, max),
        "Missing"  = f_str("xx", missing)
      )
  )  %>% 
  build()

output = t %>% 
  rename(Variable = row_label1,Statistic = row_label2,Female =var1_F, Male = var1_M) %>% 
  select(Variable,Statistic,Female, Male)

然后将输出数据帧作为 RTF 文件存储在 RStudio 环境的输出文件夹中:

#####################################################
# Step 3 - Save the Results as RTF                  #
#####################################################
library(rtf)

dir.create("output")
rtf = RTF("output/tab_adpp.rtf")  
addHeader(rtf,title="Section 1 - Tables", subtitle="This Section contains all tables")
addParagraph(rtf, "Table 1 - Pharmacokinetic Parameters by Sex:n")
addTable(rtf, output)
done(rtf)

将输出上传到 Amazon S3

生成输出后,我们将数据放回 S3 存储桶中。 我们可以通过再次创建 SageMaker 会话来实现这一点,如果会话尚未处于活动状态,然后使用 session$upload_data 功能:

#####################################################
# Step 4 - Upload outputs to S3                     #
#####################################################
library("reticulate")

SageMaker = import('sagemaker')
session <- SageMaker$Session()
s3_bucket = "aws-sagemaker-rstudio"
output_location = "output/"
s3_folder_name = "output"
session$upload_data(output_location, s3_bucket, s3_folder_name)

通过这些步骤,我们已经获取数据、对其进行处理并上传结果以供提交给监管机构。

清理

为避免产生任何意外费用,您需要退出当前会话。 在页面的右上角,选择电源图标。 这将自动停止底层实例,从而停止产生任何意外的计算成本。

使用 Amazon SageMaker 上的 RStudio 为生命科学行业 PlatoBlockchain 数据智能创建监管提交。 垂直搜索。 人工智能。

挑战

这篇文章概述了获取存储在 S3 存储桶中或从远程存储库中的原始数据的步骤。 但是,临床试验还有许多其他原始数据来源,主要是存储在 EDC(电子数据采集)系统中的 eCRF(电子病例报告表)数据,例如 Oracle Clinical、Medidata Rave、OpenClinica 或 Snowflake; 实验室数据; 来自 eCOA(临床结果评估)和 ePRO(电子患者报告结果)的数据; 来自应用程序和医疗设备的真实数据; 和医院的电子健康记录 (EHR)。 在此数据可用于监管提交之前,需要进行大量预处理。 建立各种数据源的连接器并将它们收集在集中式数据存储库 (CDR) 或临床数据湖中,同时保持适当的访问控制,这带来了巨大的挑战。

另一个需要克服的关键挑战是监管合规性。 用于创建监管提交输出的计算机系统必须符合适当的法规,例如 21 CFR 第 11 部分、HIPAA、GDPR 或任何其他 GxP 要求或 ICH 指南。 这意味着在经过验证和合格的环境中工作,并具有对访问、安全、备份和可审计性的控制。 这也意味着任何用于创建监管提交输出的 R 包都必须在使用前进行验证。

结论

在这篇文章中,我们看到 eCTD 提交的一些关键可交付成果是 CDISC SDTM、ADaM 数据集和 TLF。 这篇文章概述了创建这些监管提交可交付成果所需的步骤,方法是首先将来自几个来源的数据摄取到 SageMaker 上的 RStudio。 然后我们看到了如何以 XPT 格式处理摄取的数据; 将其转换为 R 数据帧以创建 SDTM、ADaM 和 TLF; 然后最后将结果上传到 S3 存储桶。

我们希望通过帖子中提出的广泛想法,统计程序员和生物统计学家可以轻松地将临床试验研究数据加载、处理和分析到 SageMaker 上的 RStudio 中的端到端过程可视化,并使用所学知识来定义自定义适合您的监管提交的工作流程。

你能想到任何其他使用 RStudio 来帮助研究人员、统计学家和 R 程序员使他们的生活更轻松的应用吗? 我们很想听听您的想法! 如果您有任何问题,请在评论部分分享。

资源

有关更多信息,请访问以下链接:


关于作者

使用 Amazon SageMaker 上的 RStudio 为生命科学行业 PlatoBlockchain 数据智能创建监管提交。 垂直搜索。 人工智能。罗希特班加 是英国伦敦的全球临床开发行业专家。 他是一名受过培训的生物统计学家,帮助医疗保健和生命科学客户在 AWS 上部署创新的临床开发解决方案。 他热衷于如何使用数据科学、AI/ML 和新兴技术来解决医疗保健和生命科学行业中的实际业务问题。 在业余时间,Rohit 喜欢滑雪、烧烤以及与家人和朋友共度时光。

使用 Amazon SageMaker 上的 RStudio 为生命科学行业 PlatoBlockchain 数据智能创建监管提交。 垂直搜索。 人工智能。乔治·席纳斯 是 EMEA 地区的 AI/ML 专家解决方案架构师。 他常驻伦敦,与英国和爱尔兰的客户密切合作。 Georgios 帮助客户在 AWS 上设计和部署机器学习应用程序,特别关注 MLOps 实践,并使客户能够大规模执行机器学习。 在业余时间,他喜欢旅行、烹饪以及与朋友和家人共度时光。

时间戳记:

更多来自 AWS机器学习