| 扬声器 |
文字稿 |
| 凯尔西·J·米克劳斯 |
您好,欢迎来到JMP Discovery Online。今天我将讨论不良事件总结和临床试验分析。 |
| |
我是 SAS 公司 JMP 生命科学部门高级分析组的高级经理,我们与在研究中使用基因组和临床数据的客户密切合作。 |
| |
因此,在总结和详细介绍如何使用 JMP 进行不良事件分析之前,我想先介绍一下我们团队开发的 JMP Clinical 软件。 |
| |
JMP Clinical 是 JMP 系列产品之一,该系列产品目前包括五款官方产品以及插件,可以扩展 JMP 的功能,真正让您拥有任意数量的垂直应用或 JMP 扩展。 |
| |
我的开发团队负责支持 JMP Genomics 和 JMP Clinical。JMP Genomics 和 JMP Clinical 分别是基于 JMP 定制开发的垂直领域应用,分别用于基因组研究和临床试验研究。 |
| |
今天我将谈谈我们如何在 JMP Clinical 中创建评论和分析。 |
| |
进行临床试验安全性和早期疗效分析的制药企业。 |
| |
JMP Clinical 的最初目的以及这款产品的研发实际上源于其对 FDA 的协助,而 FDA 正是 JMP 的重度用户。 |
| |
他们的CDER小组,即药物评价与研究中心,其医学审评人员通常使用JMP来辅助审查药物申报材料。 |
| |
他们很喜欢这项工作,而且做得非常出色。不过,他们发现,某些重复性操作,尤其是在处理非常标准的临床数据时,可能会相当痛苦。 |
| |
这里举个例子,就是所谓的偏移图,它是用于实验室测量的。 |
| |
其中,你需要将实验室试验平均值与基线值以及治疗组进行比较。为了创建这个模型,至少需要八到十个步骤。 |
| |
在 JMP 界面中,打开数据,对数据进行标准化,将其细分为基线与试验,分别对这些组进行统计,然后将其合并回去,然后按实验室测试拆分数据,以便您可以为每个实验室绘制这种类型的图表。 |
| |
这还没算上在 Graph Builder 中构建它所需的步骤数量。 |
| |
所以JMP显然可以做到这一点,但我们真正想做的是解决他们在处理这类标准临床数据时遇到的痛点。 |
| |
例如,只需单击一下即可生成实验室轮班图。实际上,我们希望在我们的基础设施中创建临床审查,我们称之为审查构建器。 |
| |
这些一键式标准化可重复审查功能,涵盖临床试验研究中评估药物安全性和有效性所需的许多常见标准分析和可视化。 |
| |
自最初创建用于绘制换班图的自定义应用程序以来,JMP Clinical 已经发展演变。 |
| |
成为一款全方位服务的临床……临床试验分析软件,涵盖医学监测和临床数据科学、医学写作团队、生物统计学和生物统计,以及与临床试验收集相关的研究数据的数据管理。 |
| |
这不仅适用于安全性和有效性,也适用于临床数据收集过程中可能发现的操作完整性或操作异常情况。 |
| |
我们发现 JMP Clinical 的一些关键特性包括: |
| |
对于那些使用 JMP 界面进行各种类型分析的用户来说,尤其有用。 |
| |
例如虚拟连接之类的功能。所以我们有一个全局审查主题过滤器的概念,我会在不良事件演示中向你们展示。 |
| |
这样就可以将临床试验受试者的人口统计信息或人口统计数据与收集到的所有临床领域数据进行整合和关联。 |
| |
这种架构是通过 JMP 接口中的虚拟连接和行状态同步来实现的。 |
| |
它允许您在临床试验数据分析中可能进行的所有类型的分析中,真正实现即时交互式审查,而无需或只需极少的数据处理。 |
| |
我们在软件中添加的另一项新功能也利用了 JMP 数据过滤器的一些强大功能,以及 |
| |
创建 JMP 指示列的功能,是指在您交互式查看临床试验数据时,能够执行以下操作: |
| |
找到一些有趣的信号,例如,本例中显示的屏幕截图代表的是临床试验期间发生严重不良事件的受试者,找到这些有趣的信号。 |
| |
然后立即在 JMP Clinical 中创建一个指示标志,该标志存储在研究的元数据中。 |
| |
这项功能也适用于您可能进行的所有其他类型的分析。因此,您可以说,我现在想查看发生严重不良事件的患者的实验室结果与未发生严重不良事件的患者的实验室结果,看看是否存在可能与不良事件严重程度相关的异常情况。 |
| |
我还会展示 JMP Cclinical 的另一个功能,以及围绕不良事件分析的演示,那就是: |
| |
我们已将 JMP Clinical API 集成到系统中。提供、创建和开发垂直应用最困难的事情之一就是实现它。 |
| |
具备开箱即用的单键报告功能的是…… |
| |
当你完成 90% 的工作时,客户可能会说,哦,好吧,我真的很想调整一下,或者我真的很想这样查看,或者我需要改变数据视图的显示方式。 |
| |
因此,我们开发团队一直在努力的方向之一就是使用 JMP 脚本 JSL。 |
| |
为了将API集成到临床审查流程中,我们可以控制临床审查中使用的对象、显示界面、仪表盘、分析方法,甚至是数据集。因此,我也会在其不良事件分析部分展示一些相关内容。 |
| |
现在我们已经对 JMP Clinical 有了大致的了解,让我们稍微回顾一下,深入探讨不良事件和临床试验的实质内容。 |
| |
实际上,思考这个问题主要有两种方式。一种是临床试验的安全性审查方面,通常指的是可能发生的不良事件的数量和百分比。 |
| |
很多医生、监测人员或审查人员经常使用这些数据来了解医学异常情况,比如,当某种不良事件开始出现时。 |
| |
更常见的情况是,其中一种治疗方法可能会产生医疗影响。 |
| |
此外还有统计信号检测,即通过统计方法评估异常高发不良事件的发生率。 |
| |
比较其中一个治疗组和另一个治疗组的情况。例如,这里是一个传统的静态表格,您在许多类型的研究、提交材料或与临床试验不良事件分析相关的交流中都会看到它。 |
| |
基本上,它是一个包含计数和百分比的静态表格;如果它更侧重于统计学,你还会看到置信区间和p值等信息。 |
| |
围绕比值比、相对风险或比率差异等概念。 |
| |
另一种查看方式是采用可视化方式,而不是表格形式,例如信号检测,查看比值比或风险差。 |
| |
在这种情况下,可以使用图表生成器来显示某些不良事件发生率的统计分析结果,以及这些不良事件在不同治疗组之间的差异。 |
| |
以上是两个例子。事实上,根据我们所做的工作以及我们与客户合作的经验,他们如何看待和分析不良事件, |
| |
JMP Clinical系统现在提供多种常见不良事件分析,从简单的计数和百分比到发生率或事件次数。 |
| |
转化为统计指标,例如风险差、相对风险、比值比,包括一些暴露调整后的事件发生时间分析。 |
| |
我们还可以通过拟合更复杂的模型类型,真正深入到混合模型或贝叶斯模型中,以发现不良事件差异的某些信号。 |
| |
此外,我们在审查医学写作叙述或患者档案中的医疗数据时也会大量使用这些数据。 |
| |
现在我将直接进入 JMP Clinical,并围绕许多常见的分析方法构建一个评论。 |
| |
所以你会注意到 JMP Clinical 的一个特点是它看起来并不完全像 JMP,但它确实是 JMP。 |
| |
这是一个综合解决方案,其中包含大量自定义 JSL 脚本,用于构建我们自己的界面类型。例如,我们这里的起始窗口会显示研究、评论和设置。 |
| |
我已经写好了一篇评论。 |
| |
这里 |
| |
这里使用的是我们提供的尼卡达平示例数据。这些数据随产品一起提供,也可以在 JMP 示例库中找到。 |
| |
这是一项真正的临床试验,研究对象是蛛网膜下腔出血,约有900名患者参与。 |
| |
因此,我们这份报告的第一页主要关注的是这些患者的人口统计特征分布情况,例如男性和女性患者的数量、种族构成等。 |
| |
他们被分配到哪个治疗组,数据采集地点等等。所以这很常见,这是了解临床试验临床数据的第一步。 |
| |
您会注意到这里有一个报告导航器,它显示了我们在此内置审查中可用的其他类型的分析。 |
| |
我将快速浏览一下这些标签页,向大家展示我们可以使用临床试验数据集查看不良事件的各种不同方法。 |
| |
目前,临床试验中收集数据的典型方式是一种称为CDISC格式的国际标准。 |
| |
这通常意味着我们的数据集格式非常复杂。在这里我们可以看到,每个受试者都有多条记录,分别指示了随着时间推移可能发生的不同不良事件。 |
| |
这些数据将与人口统计数据配对,人口统计数据中,每个受试者对应一行,如本人口统计数据所示。因此,我们有大约900名患者,您将在第一份报告中看到,我们有大约5000到5500条关于不同不良事件的记录。 |
| |
因此,这可能是许多评估不良事件信号的医学监察员和医学审查员最常用的报告。 |
| |
这里我们看到的基本上是一个仪表板,它将 Graph Builder 计数图与一个配套表格结合在一起,因为他们习惯于看到这类表格。 |
| |
JMP 的真正价值在于其交互性,以及与数据的动态链接,使您可以选择数据中的任何位置,并在两个位置同时查看。更强大的是,您还可以通过以下方式控制视图: |
| |
列切换器。 |
| |
现在我们可以从考察治疗分布情况切换到考察性别与种族差异。你会注意到,就种族而言,如果我们还记得的话,我们有相当多的…… |
| |
本研究中白色样本占比较大,因此按百分比或计数来看,这张图不太好,所以我们可能会进行标准化处理,改为显示百分比。 |
| |
我们也可以决定查看不良事件的总体总数。 |
| |
将其用作列切换器的另一个好处是,可以对这些事件进行分类。例如,是否属于严重不良事件?其严重程度如何? |
| |
他们康复后的结果是否就是现在这样?是什么原因造成的?这与研究药物有关吗? |
| |
这些都是医学审查人员经常会提出的问题,目的是在不良事件的发生过程中发现有趣或异常的信号。 |
| |
您可能已经注意到,在这个仪表板中,我使用了一个控制组作为列切换器,它实际上同时控制着我的图表和表格。因此,当我切换到严重级别时,这个表格也会随之切换。 |
| |
这是通过大量专门针对我们需求的自定义 JSL 脚本实现的,但是 |
| |
我告诉你一个秘密,在 16 版本中,列切换器的开发者将允许我们拥有这种灵活性,这样你就可以将多个平台对象连接到同一个列切换器中,从而驱动复杂的分析。 |
| |
虽然看起来很简单,但我稍后会再谈到这个发生率图。这里是另一个例子,它实际上考察的是总体发生率,其中某些不良事件可能在同一受试者身上多次发生。 |
| |
我稍后会再讨论这些,但在此之前,我会先快速浏览一下其余的分析和评论,然后再来探讨简单图表生成器和表格分布报告的一些复杂之处。 |
| |
接下来,我们将进行一项关于不良事件筛查的审查。在此,我们将不再仅仅关注事件数量、频率或发生率,而是进一步深入分析。 |
| |
将其纳入更严谨的统计框架,以检验不同治疗组中某些不良事件发生率的差异。 |
| |
这里我们用火山图来表示这一点。我们可以看到,与安慰剂组相比,接受尼卡地平治疗的治疗组患者发生静脉炎、低血压和等渗尿的频率要高得多。 |
| |
因此,我们实际上可以选择这些事件,并深入分析不良事件的一个非常常见的视图,这也是我们单元格图中的相对风险。 |
| |
很多时候,只关注那些可能具有临床或统计学意义的有趣信号,反而更容易阅读。 |
| |
临床试验有时耗时很长。有时只需几周,就像这项研究一样,但有时却要持续数年。 |
| |
因此,有时思考试验过程中不良事件的差异会很有意思。我们也具备这种能力。 |
| |
事件筛查报告可以将研究日分成若干部分,以便查看不良事件的发生情况如何随时间变化。 |
| |
一个很好的证明方法是用火山爆发图来展示这些信号在研究过程中是如何变化的。 |
| |
所以,这又是一个很有力的想法,尤其是在进行时间更长或更复杂的临床试验时。 |
| |
与其只关注受试者的直接发病率,不如考虑他们的事件发生时间或暴露调整后的不良事件发生率。 |
| |
这就是我们在事件发生时间分析中所提供的,再次以火山图的形式展示,这里使用 Kaplan-Meier 检验进行分析。 |
| |
临床试验中某些事件的发生时间存在差异。其优点之一是您可以选择这些事件并深入分析 JMP 数据。 |
| |
生存平台可获取每项不良事件的完整详细信息,这些不良事件在不同治疗组之间的发生时间结果可能有所不同。 |
| |
另一种表示事件发生时间的方法通常称为发病率密度比,其概念是暴露调整后的发病率密度。基本上,它的区别在于,它不使用一些更传统的比例风险或Kaplan-Meier分析,而是更像…… |
| |
泊松分布,并根据患者实际接触药物的时间长短进行调整。我们再次可以查看这些主要信号。 |
| |
然后使用 JMP 中的广义线性模型,针对特定类型的模型,深入查看类似的报告,并检测不良事件信号。 |
| |
我们甚至还提供一些非常复杂的贝叶斯分析。这类数据的一个典型特点是不良事件。 |
| |
这些因素存在于特定的身体系统或类别中……例如器官类别。因此,我们可以将很多先验知识或信息输入到这些模型中。所以,我们的一些客户,他们的生物识别团队,在分析不良事件时,会选择使用相当复杂的模型。 |
| |
所以,到目前为止,我们已经从我认为相当简单的数据分布视图出发,逐步深入到数据分布的演变过程中。 |
| |
将不良事件的分布和计数图转化为非常复杂的统计分析。 |
| |
现在我要回到简单的计数和频率信息,我想花些时间在这里展示我们拥有的 JMP 交互功能的强大之处。 |
| |
您应该记得,这里的区别之一是,这张表格是一个堆叠表格,其中包含了每个受试者所有不良事件的发生情况。 |
| |
我们的人口统计表(我们知道有900名受试者)是单独列出的。因此,我们想要的不是一个静态图表。 |
| |
就像我们这里看到的,或者像典型的PDF报告那样,但我们希望能够以交互方式探索我们的数据。 |
| |
然后查看我们数据的子组,看看这些百分比会如何变化。现在的难点在于,百分比的计算需要用到另一个表格中的样本数量。 |
| |
所以我们实际上是通过公式实现的……比如创建列公式,以便在选择时动态控制百分比的重新计算,无论是在事件分类中还是在事件分类中。 |
| |
或者,更高效地,使用我们的研究对象筛选工具。例如,这里我们按治疗方案查看所有研究对象。 |
| |
或许可以区分严重不良事件和非严重不良事件,但我们可以使用这个全局数据筛选器,它会影响我们审查中的每个受试者级别的报告。 |
| |
并立即改变我们的人口统计群体,并将我们的百分比改为 |
| |
这种类型的子群体探索具有交互性。例如,现在我们可以细分到白人女性,查看她们的不良事件发生率和天赋,或者您可能想更细致地了解每个站点的数据变化情况。 |
| |
所以,我们现在看到的,并不是提交资料包或临床分析,而是生物统计团队进行的分析。 |
| |
它会向医学审阅者提供 70 个不同的图表,供其浏览和筛选;他们有能力在一个界面中创建数百个不同的表格、不同的子集和不同的图形。 |
| |
事实上,你可以进一步筛选出那些有趣的类别。例如,如果他们关注的是严重不良事件。 |
| |
他们想尽快了解与药物治疗相关的严重不良事件,现在我们从900名患者中筛选出了一个非常小的子集,大约 |
| |
有九名患者出现了与治疗相关的严重不良事件。因此,作为一名医学审稿人,Ithen可能需要了解这些患者的所有临床细节。 |
| |
而且,我可以很快地使用报告中的操作按钮,深入查看所谓的完整患者档案。 |
| |
所以现在我们看到的是所有信息,不是汇总层面的信息,而是这位患者一段时间内发生的所有事情的个体层面的信息。 |
| |
包括发生严重不良事件时以及同时进行的实验室或生命体征测量。 |
| |
除了医学审查和医学监察之外,我们的 JMP Clinical 系统的另一个主要用途是为医学写作团队提供支持。因此,除了以图形或表格(例如患者档案表)的形式直观地查看之外,您还可以通过另一种方式来查看这些信息。 |
| |
并自动生成叙述。 |
| |
所以,我们现在要正式启动了。 |
| |
这有助于我们生成不良事件叙述。再次强调,JMP Clinical 的优势和价值之一在于它是一个垂直应用,依赖于标准数据。 |
| |
也就是说,我们只需被引导到这项研究,就能提前了解所有数据及其格式。因此,我们现在可以做的就是展开这个叙述。 |
| |
那将要给我们写信。 |
| |
每起不利事件的真实经过。 |
| |
这将打开一个 Word 文档。 |
| |
其中包含了该主题的所有详细信息,包括他们的人口统计信息、病史,以及每起不良事件及其结果或其他相关问题。 |
| |
我们可以一次只对一位患者进行操作,也可以一次性对所有900位患者进行操作,包括 |
| |
更复杂的细节,例如实验室测量结果、生命体征(基线值或既往值)。因此,医学审阅人员发现,能够标准化地获取数据源,并在将数据从数字表格转换为实际叙述的过程中避免出错,这一点极其重要。 |
| |
所以我觉得仅凭这一点,你就能真正看到这些分布视图的强大之处了。 |
| |
计数图允许您深入分析非常细粒度的数据层级。这种使用主题筛选器的能力 |
| |
您可以查看临床试验中的所有患者,或者查看您可能发现的相关亚组。 |
| |
现在,我们通过虚拟连接实现的全局筛选器的一个特点是,它通常只显示人口统计信息。 |
| |
我们为该系统编写的另一个自定义工具是,能够选择所有发生严重不良事件的受试者。 |
| |
我们可以推导出人口标志,然后将其用于进一步的分析。 |
| |
或者我们甚至可以将该受试者的筛选条件添加到我们的全局筛选条件中,这样我们就只关注发生严重不良事件的受试者了,临床试验中大约有 300 名患者发生了严重不良事件。 |
| |
现在,您会发现这份报告实际上也经过了筛选。第二份报告则展示了不良事件分布的另一个方面,即发生率,这是我们最新版本中的新增内容。 |
| |
这里,我们的想法是,不进行标准化或除法,而是用发生事件的受试者人数来计算百分比。如果您正在进行试验、长期试验或跨国家/地区开展的、启动时间不同的研究性试验, |
| |
您可能需要查看不良事件的发生率。这就是这里要计算的内容。在本例中,我们筛选出所有发生过严重不良事件的受试者,并查看其发生率。 |
| |
以患者年数计算。例如,第一个研究中,安慰剂组每10个患者年发生约86次事件,而治疗组发生约71次事件。 |
| |
尼卡地平。所以这实际上是用来治疗蛛网膜下腔出血的,如果不使用活性药物治疗,颅内压可能会升高。 |
| |
这些百分比,也就是这些发病率,都是完全动态的。所以,再次强调,这些都是由 JMP 公式自动计算并导入到表格中的。 |
| |
这种全球筛选方式尊重不同人群。因此,我们可以只查看例如美国境内的数据,了解各项指标及其变化情况,包括基于美国患者的标准化患者年数。 |
| |
所以,尽管这些报告看起来很简单,但除了将其构建到仪表板之外,JSL 编码的复杂性基本上就是我们团队每天的工作。 |
| |
我们努力这样做,是为了让您拥有一个仪表盘,帮助您轻松地探索数据,而无需进行所有可能变得非常复杂的操作。 |
| |
最后我想展示的是这个定制方案的理念。 |
| |
报告或自定义报告。这里也是展示它的绝佳位置,因为我们在这里查看的是不良事件发生率。所以我们是逐个事件地查看。 |
| |
我们有统计数据,或者您也可以将其更改为按患者年度计算的发生率。另一种查看方式可能是想了解这些不良事件随时间推移的发生情况。 |
| |
因此,我想快速地用我们的临床 API 来演示一下。您可以完全访问这里的数据表。 |
| |
首先,我需要创建一个数值日期变量,数据表中有一个小工具可以实现这个功能,我会把它转换成数值日期类型。现在你会注意到,末尾多了一列。 |
| |
不良事件的起始日期时间的数值。您还会注意到,所有这些功能都源于公式。这些公式实际上都是根据人口统计数据动态生成的,用于创建这些视图。 |
| |
既然我们已经有了包含此数据的数值日期,现在我们可能希望扩展此分析,以包含一种新的图表类型。 |
| |
我有一个脚本可以实现这个功能。我首先要做的就是在数据集中添加两个额外的列,分别用于存储月份和年份。 |
| |
接下来这部分 JSL 代码是我们的临床 API 调用。我不会赘述细节,只说它是我们连接到系统的一种方式。 |
| |
临床审查和获取各部分的访问权限。所以当我运行这段代码时, |
| |
它实际上会在我的临床回顾中插入一个新章节。现在,我可以更全面地查看临床试验中所有受试者按月、按年发生的不良事件。 |
| |
因此,即使使用这种自定义视图,其优势之一仍然是,该表虽然仍然虚拟地连接到我们的主组,但仍然可以完全 |
| |
响应虚拟连接全局主题过滤器。因此,只需少量自定义 API JSL 代码,我们就可以使用我们自己的分析类型来定制这些非常标准的现成报告。 |
| |
我知道以上内容对 JMP Clinical 进行了相当全面的概述,包括该系统可以进行的各种临床不良事件分析类型,这些分析对于在制药行业或医药行业从事临床试验的人员来说很常见。 |
| |
但我希望即使您不在制药行业工作,也能觉得这一部分有价值且有趣。这是最好的之一。 |
| |
JMP Clinical 的例子只是 JSL 的一个极端扩展,它利用 JSL 的强大功能来创建高度定制化的应用程序。 |
| |
所以,也许你没有处理不良事件,但你可以从这里看到一些启发,从而在 JMP 中创建自定义仪表板或自定义插件,以进行你自己的分析类型。 |
| |
谢谢。 |