Using Virtual Join in JMP 13 to explore adverse events data
Virtually joining data tables is a new capability in JMP 13 that can save you space and memory, while increasing your productivity in analyzing your data from multiple tables.
This new feature can help with large data tables, and save you time in trying to figure out the best way to physically join them together. Virtual joins allow you to link tables, making variables available for use together in your analysis, graphs and many other platforms in JMP.
This blog post presents an example of using Virtual Join on data from a randomized controlled clinical trial for the drug nicardipine for treatment of patients with rare, life-threatening aneurysmal subarachnoid hemorrhage (SAH). This was a clinical trial carried out from 1987 to 1989 on very sick patients experiencing bleeding between the brain and the tissues that cover it. Understandably, the patients experienced several adverse events while in the trial. It is the job of the medical monitor of the clinical trial to look at the distribution of those events. Understanding adverse event occurrence across demographic and treatment groups along with their severity and possibility of a relationship to study drug administration is a key component to meeting safety standards to keep patients safe. This example uses an adverse events data table along with a demographics data table -- to quickly demonstrate which subjects experiencing certain events in the study were a certain age, sex, race and which treatment they received. Each table has a unique identifier (USUBJID) column or variable that can be linked together; once the tables are linked, you can analyze the data and pull together valuable information.
The demographics table (demographic.jmp) contains a unique row for each subject. Therefore, USUBJID column in this table will be the “Link ID” column. The Link ID column property marks a column in the auxiliary data table as the ID column. That is, the rows of the data table are uniquely identified by the values of the ID column. There are several ways to assign this column property, but you can simply right-click on the column and select it, which places a check mark beside Link ID, as shown below.
Once that Link ID is set in this table, you can reference it from the adverse events table (adverseevents.jmp) with the same identifier column (USUBJID). To assign your “Link Reference” column property, use the right-click method again on that column to easily select the demographic.jmp table that you want to reference or link back to, as shown below.
When the Link ID and the Link Reference are set up properly in both tables, you will see a gold key in one table and a blue key in the other.
Below you can see the adverseevents.jmp table, with the referencing columns from the demographic.jmp table in the columns panel:
Nicardipine is a calcium channel blocker that works by relaxing blood vessels so adverse events related to the vascular system are of interest. You can use a Data Filter for AEBODSYS and select VASCULAR DISORDERS, and Distribution lets you easily see those adverse events alongside the demographic information via the virtual join.
You can see that having both hypertension and hypotension was a common occurrence in subjects. With the ability to include treatment ARM via the USUBJID link, you can see that there was reduced occurrence in the Treatment group (NIC .15). Meanwhile if you select Hypotension, you see an increased occurrence in the treatment group. This suggests the drug was perhaps working too well!
Using Graph Builder, you can explore the relationship between the adverse events severity and whether the placebo was administered. This graph seems to show that there were less severe events in using the placebo.
It is also nice to use the Summary platform to find the sum of how many subjects used the Placebo vs. the NIC . 15 grouped by ARM[USUBJID], SEX[USUBJID] and AESEV, and see that the majority of the cases reported mild severity in adverse events. Using Tables - > Summary you can select the following and then see the table produced below.
This is just one example of data that can be referenced from one table to another. I have found Virtual Join very useful when I have multiple tables and need to pull data from different sources. I hope you will find it useful, too.