u/Real_Philosopher_831

Rudimentary DD on REGAL

First off, thanks to a lot of people here who have helped me understand the REGAL trial better. I'm not a statistician (still a student) and this is definitely not meant to replace the more sophisticated models others have shown. Still, I felt like this would be useful to show... So buckle up!

Basic Assumptions

  1. Total REGAL patients: 126
  2. Arm split: 63 BAT / 63 GPS
  3. Median enrollment date: March 22, 2023 (this is used by u/Confident-Web-7118)
  4. Known event anchors used: 60 events at December 10, 2024; 72 events at December 26, 2025; 78 events at May 11, 2026
  5. Weibull shape parameter (k = 0.85)
  6. -> This is meant to approximate a front-loaded AML-like survival curve rather than a simple exponential curve
  7. Bat mOS tested: 6 months to 20 months
  8. GPS mOS: solved by fitting the model to the 60/72/78 event anchors
  9. HR approximation: assumes BAT and GPS use the same (k = 0.85) weibull shape

Again, this is not a true patient-level Cox model. It compresses the trial into a median-enrollment framework. But it helps to answer the following simple question: Given the public event timeline, what GPS mOS / HR would be implied under different BAT mOS assumptions?

The survival function used
The model uses this survival function: S(t)=0.5ˆ{(t/mOS)ˆk}

Where:

  • (S(t)) = survival probability at time (t)
  • (t) = months of follow-up from median enrollment
  • (mOS) = median overall survival
  • (k = 0.85)

Deaths in each arm are then calculated as: Death = 63 * (1 - S(t)), since there are 63 patients in each arm.

How the Python code works
For each Bat mOS from 6 to 20, the code does the following.

Step 1: Convert event dates into follow-up time

Using median enrollment of March 22, 2023:

  • Dec. 10, 2024 = about 20.67 months
  • Dec. 26, 2025 = about 33.18 months
  • May 11, 2026 = about 37.65 months

Step 2: Pick a Bat mOS and calculate BAT deaths

For example, suppose:

Bat mOS = 10,

then the BAT survival curve is S_BAT (t) = 0.5 ^ {(t/10)ˆ0.85}.

At each event anchor, the model gets approximately:

Date Total trial events BAT alive BAT deaths
December 10, 2024 60 17.44 45.56
December 26, 2025 72 9.22 53.78
May 11, 2026 78 7.42 55.58

Step 3: Subtract BAT deaths from total trial deaths

For example, if the trial had 60 total deaths, and BAT explains 45.56 of them, then GPS must explain the rest.

So, GPS_deaths = Total_deaths - BAT_deaths

For BAT mOS = 10:

Date Total trial events BAT deaths Implied GPS deaths
December 10, 2024 60 45.56 14.44
December 26, 2025 72 53.78 18.22
May 11, 2026 78 55.58 22.42

So if BAT mOS = 10 months, then the public event path implies GPS death targets of roughly:
[14.44, 18.22, 22.42] across the three event anchors.

Step 4: Find the GPS mOS that best matches those GPS deaths

The code then tries many possible GPS mOS values. For each candidate GPS mOS, it calculates the predicted GPS deaths at the three dates (like how we calculated BAT deaths in Step 2). Then, it compares predicted GPS deaths versus the target GPS deaths.

The error is: Error = Predicted_GPS_Deaths - Target_GPS_Deaths.
The code then squares the error across the three anchors and adds them. Then, the code chooses the GPS mOS with the lowest total squared error.

For BAT mOS = 10, the best-fit result was GPS_mOS approximately 68.63

With this GPS mOS, the predicted GPS deaths are close to the target death path across all three anchors. The total squared error is approximately 3.227. The square root of that is approximately 1.8, so in simple terms, the fitted GPS curve is off by around 1.8 deaths across the 3 events.

Step 5: Convert Bat mOS and GPS mOS into rough HR.

Because both arms use the same Weibull shape (k = 0.85), the rough HR estimate is
HR = (Bat mOS / GPS mOS)ˆk

For BAT mOS = 10, the rough HR is (10 / 68.63)ˆ0.85 = approximately 0.195

So under this specific scenario:

  • BAT mOS = 10 months
  • Best-fit GPS mOS = 68.63 months
  • Full-path rough HR = 0.195

*****************************************************************************************

The above was to show how the code works. The results of the model are shown below. In a similar fashion, it also calculates the HR at interim (60-events).

BAT mOS Best GPS mOS Squared Error Full HR 60-event GPS mOS 60-event HR
6 120.32 20.9366 0.078 215.91 0.048
7 102.86 11.3595 0.102 139.27 0.079
8 88.83 6.0274 0.129 101.53 0.115
9 77.62 3.6581 0.160 79.58 0.157
10 68.63 3.2270 0.195 65.43 0.203
11 61.35 3.9860 0.232 55.63 0.252
12 55.38 5.4151 0.273 48.49 0.305
13 50.43 7.1648 0.316 43.07 0.361
14 46.27 9.0073 0.362 38.83 0.420
15 42.75 10.7991 0.411 35.44 0.482
16 39.73 12.4542 0.462 32.65 0.545
17 37.12 13.9254 0.515 30.34 0.611
18 34.84 15.1908 0.570 28.38 0.679
19 32.84 16.2453 0.628 26.70 0.749
20 31.07 17.0938 0.688 25.25 0.820

What stands out to me

The lowest squared-error happens around BAT = 9,10,11, which leads me to think that these are the most probable BAT mOS values for REGAL. These BAT mOS gives HR values of
0.160, 0.195, and 0.232.

What about halting for efficacy at interim?

One fair question is that at BAT mOS of 9, 10, 11 or even values higher, the HR is spectacular, why didn't they halt for efficacy?

I believe there can be a few possible reasons for this.

  1. The company amended the final event count from 105 events to 80 events, which already shortened the trial and reduced the event burden.
  2. A trial can look very favorable at interim but still continue if the sponsor, IDMC, and statistical plan favor more mature final analysis.
  3. In immunotherapy-like settings, long-term follow-up may matter more than simply stopping as soon as a favorable signal appears.

Others who are more familiar with this side can answer though!

However, there are lots of caveats in the analysis!!

Limitations:

  • It uses median enrollment rather than actual patient-level enrollment dates (Stergiou has said Sellas knows the exact enrollment dates and speaks very bullishy, so I don't view this as a negative factor).
  • It assumes the same Weibull shape (k = 0.85) for both BAT and GPS.
  • It does not model censoring properly.
  • It does not perform a real Cox proportional hazards analysis.

All the above was calculated through Python code after I guided ChatGPT step by step through the logic. I don't know how to attach the code file here? If anyone is interest, DM me and we can figure it out!

reddit.com
u/Real_Philosopher_831 — 4 days ago
▲ 4 r/EMJX

Question

So I've been looking at SRXH for a couple of months now. I had been seriously considering putting in some cash at 0.11, but couldn't bring myself to do it seeing it going up to 0.17 and back down to 0.11 at one point. Could this run be similar? The 0.17 back to 0.11 was in a day, and I see that this increase is sustained for a couple of days (i'm kicking myself for it). Is this genuinely a good entry point, or should i wait for a dip to like 0.15.

reddit.com
u/Real_Philosopher_831 — 19 days ago
▲ 9 r/AMA

I was sexually harrassed by a billionaire when I was 15 AMA

When I was 15, my parents had connections to a billionaire through a friend. They suggested I meet up with him since the billionaire ran lots of charities and would help me with the future.

I was harrassed by him for a couple of months until the last time I met him things sort of escalated (nothing bad rly resulted in the end tho). I came home, told my parents, and from my knowledge my parent’s friend also cut ties off with the billionaire.

Since then, he has also sent me an apology through his corporate email. I regret not beating him up 😢 He's short and small.

AMA

reddit.com
u/Real_Philosopher_831 — 1 month ago