Take Me Heme, Binding Modes: Wrapping up the CYP Inhibition Challenge

Let’s have those country roads take us to the finish line! After 2 months and more than 6,000 submissions, we finally have our winners.

Share
Take Me Heme, Binding Modes: Wrapping up the CYP Inhibition Challenge

Authors: Maria Castellanos, Jon Swain and Hugo MacDermott-Opeskin
DOI: 10.5281/zenodo.23985044

Cytochrome P450 (CYP) enzymes are the human body's primary workhorses for drug metabolism, making CYP inhibition a critical liability to model when predicting potential drug-drug interactions. To benchmark modern computational tools, OpenADMET generated high-throughput, high-fidelity inhibition data for 6,899 compounds across 4 CYPs.

Participants predicted activities across four crucial CYP isoforms that metabolize the vast majority of marketed drugs: CYP3A4, CYP2D6, CYP2C9, and CYP1A2. The challenge was divided across three different tracks:

  • Direct Inhibition Track: A regression task to predict direct inhibition pIC50
  • Time-Dependent Inhibition (TDI) Track: A classification task to identify compounds that exhibit time-dependent inhibition.
  • Structure Prediction Track: A pose-prediction task evaluated against 20 novel CYP3A4 Cryo-EM complex structures.

The community turned out in full force for this challenge. With over 6,000 submissions across the three tracks, we saw a total of 271 participants in Direct Inhibition, 155 in TDI, and 50 in the Structure track. We also just fully unblinded the entire dataset; now available on Hugging Face. Whether you participated or not, you can now access the complete set of inhibition data and structures to run your own post hoc analyses and train your models.

Now, without further ado, let’s look at the final leaderboards!

We’re crowning the Heme-coming King and Queen

We are excited to announce the winners of the CYP Inhibition Blind Challenge! Below, you will find the top 20 entries for each of the three tracks. Full interactive leaderboard tables are now available on the challenge Hugging Face space. Entries are grouped into tiers, with one tier containing all consecutive entries that were not statistically distinct from each other, and the next tier starting with the first entry found to be statistically distinct.

Note that these final leaderboards differ from their live versions available through the challenge. First, the ranking below reflects evaluation on the entire test set, while the live leaderboard evaluates only half of the test set; as a result, some entries may have shifted up or down compared to the live rankings. Second, we filtered the leaderboard to include only entries with a valid model report and a valid Hugging Face username, as explained in the challenge rules. Third, we removed teams suspected of cheating by submitting from multiple accounts (against the challenge rules), and that provided no valid justification for their actions.

How much did that reshuffle things? For the two activity tracks, remarkably little. Scoring the full test set instead of half moves the typical entry up one place in Direct Inhibition, up four in TDI, and keeps nine of the ten entries that led the live board in the final top ten. The Structure track saw the largest shifts, with only half of the live top ten remaining at the top, which is expected since the live board was scored on ten protein-ligand complexes only.

Direct inhibition leaderboard

Our regression task has 103 entries on the final leaderboard, spanning 29 performance tiers. Congratulations to whippoorwill and preheat-to-450, who make up Tier 1. You get to rock out as the stars of Heme-coming.

RankUsernameST-RAE mean ± stdSpearman ρReportTier
1whippoorwill0.341 ± 0.0100.815Tier 1
2preheat-to-4500.343 ± 0.0100.814Tier 1
3NV-deCYPher0.355 ± 0.0100.813Tier 2
4CyclinB0.357 ± 0.0100.811Tier 2
5grapefruit0.368 ± 0.0110.804Tier 3
6beast0.380 ± 0.0110.802Tier 4
7wbot0.389 ± 0.0110.785Tier 4
8rasayan-labs0.391 ± 0.0110.794Tier 4
9SVM0.396 ± 0.0110.793Tier 5
10hamza3220.402 ± 0.0110.792Tier 5
11chemcyps0.404 ± 0.0110.795Tier 5
12nova0.405 ± 0.0110.780Tier 5
13cyp-3po0.413 ± 0.0110.782Tier 6
14GiantWizard0.415 ± 0.0120.767Tier 6
15EleanorRigby0.418 ± 0.0110.784Tier 6
16Scigantic0.421 ± 0.0110.771Tier 6
17gogocyptron0.423 ± 0.0120.766Tier 6
18Queimo0.425 ± 0.0120.763Tier 6
19tguttenb10.426 ± 0.0110.757Tier 6
20fin0.429 ± 0.0110.762Tier 6
RankUsernameST-RAE mean ± stdSpearman ρReport
1whippoorwill0.336 ± 0.0190.862
2preheat-to-4500.343 ± 0.0200.858
3CyclinB0.344 ± 0.0190.860
4NV-deCYPher0.353 ± 0.0190.864
5grapefruit0.356 ± 0.0190.861
6rasayan-labs0.366 ± 0.0200.845
7wbot0.372 ± 0.0190.848
8beast0.385 ± 0.0220.844
9Queimo0.385 ± 0.0210.841
10SVM0.387 ± 0.0200.845
11gogocyptron0.389 ± 0.0220.840
12fin0.390 ± 0.0220.842
13EleanorRigby0.391 ± 0.0200.831
14Scigantic0.394 ± 0.0190.840
15chemcyps0.395 ± 0.0200.846
16hamza3220.396 ± 0.0220.834
17GiantWizard0.396 ± 0.0220.841
18nova0.397 ± 0.0230.842
19Zachary Kirby0.406 ± 0.0210.829
20tguttenb10.406 ± 0.0190.832
RankUsernameST-RAE mean ± stdSpearman ρReport
1whippoorwill0.285 ± 0.0180.894
2preheat-to-4500.290 ± 0.0180.895
3CyclinB0.305 ± 0.0170.890
4NV-deCYPher0.310 ± 0.0180.884
5beast0.326 ± 0.0180.882
6SVM0.328 ± 0.0180.877
7nova0.336 ± 0.0190.875
8grapefruit0.337 ± 0.0190.870
9hamza3220.340 ± 0.0200.873
10chemcyps0.346 ± 0.0180.874
11cyp-3po0.353 ± 0.0200.869
12wbot0.353 ± 0.0200.860
13fin0.353 ± 0.0190.864
14GiantWizard0.355 ± 0.0210.862
15tguttenb10.356 ± 0.0200.860
16gogocyptron0.357 ± 0.0210.868
17N283T0.359 ± 0.0210.862
18EleanorRigby0.360 ± 0.0200.861
19furtivepeony0.360 ± 0.0210.860
20rasayan-labs0.360 ± 0.0200.864
RankUsernameST-RAE mean ± stdSpearman ρReport
1preheat-to-4500.435 ± 0.0240.601
2NV-deCYPher0.435 ± 0.0230.610
3whippoorwill0.445 ± 0.0250.600
4CyclinB0.453 ± 0.0260.598
5grapefruit0.454 ± 0.0260.595
6beast0.472 ± 0.0250.597
7rasayan-labs0.480 ± 0.0240.592
8wbot0.495 ± 0.0250.549
9cyp-3po0.506 ± 0.0250.579
10chemcyps0.524 ± 0.0300.569
11SVM0.530 ± 0.0280.566
12hamza3220.530 ± 0.0260.576
13EleanorRigby0.533 ± 0.0240.572
14RasLabD0.543 ± 0.0290.575
15nova0.544 ± 0.0250.519
16sandeepbii0.551 ± 0.0270.566
172d6_yakuza0.554 ± 0.0250.533
18Gashaw0.558 ± 0.0280.534
19GiantWizard0.564 ± 0.0280.490
20Scigantic0.565 ± 0.0250.511
RankUsernameST-RAE mean ± stdSpearman ρReport
1whippoorwill0.298 ± 0.0150.903
2preheat-to-4500.304 ± 0.0160.900
3NV-deCYPher0.321 ± 0.0170.896
4grapefruit0.326 ± 0.0160.888
5CyclinB0.326 ± 0.0160.896
6gogocyptron0.332 ± 0.0180.889
7wbot0.337 ± 0.0160.885
8beast0.337 ± 0.0160.887
9SVM0.340 ± 0.0180.883
10hamza3220.341 ± 0.0160.885
11nova0.342 ± 0.0170.885
12GiantWizard0.344 ± 0.0170.878
13chemcyps0.353 ± 0.0170.890
14cyp-3po0.353 ± 0.0170.879
15Scigantic0.354 ± 0.0170.873
16tguttenb10.358 ± 0.0180.871
17horse-pusher0.358 ± 0.0170.877
18rasayan-labs0.358 ± 0.0180.877
19stir_bar0.359 ± 0.0170.879
20briford0.361 ± 0.0180.875

TDI leaderboard

Our classification task had 62 entries on the final leaderboard, spanning 5 performance tiers. Congratulations to rasayan-labs, nova, and NV-deCYPher, who make up Tier 1.

RankUsernameMCC mean ± stdF1ReportTier
1rasayan-labs0.498 ± 0.0370.528Tier 1
2nova0.432 ± 0.0440.508Tier 1
3NV-deCYPher0.420 ± 0.0390.509Tier 1
4karriram0.409 ± 0.0420.497Tier 2
5preheat-to-4500.408 ± 0.0390.490Tier 2
6MilkTeaEveryday0.408 ± 0.0370.504Tier 2
7N283T0.403 ± 0.0380.503Tier 2
8NIPERKOLKATA_PI_LAB0.400 ± 0.0440.487Tier 2
9harinu1230.400 ± 0.0380.499Tier 2
10Asidsal110.389 ± 0.0450.428Tier 2
11jeremy0.387 ± 0.0380.488Tier 2
12Zachary Kirby0.385 ± 0.0420.482Tier 2
13stir_bar0.378 ± 0.0380.482Tier 2
1401|96|30|5970.372 ± 0.0380.483Tier 2
15furtivepeony0.371 ± 0.0360.483Tier 2
16sandeepbii0.366 ± 0.0370.469Tier 2
17horse-pusher0.363 ± 0.0400.470Tier 2
18EleanorRigby0.361 ± 0.0380.459Tier 2
19CYP Blackberry0.356 ± 0.0350.474Tier 2
20cyclinB0.355 ± 0.0340.447Tier 2
RankUsernameMCC mean ± stdF1Report
1rasayan-labs0.490 ± 0.0660.403
2nova0.386 ± 0.0800.378
3karriram0.342 ± 0.0760.362
4Asidsal110.338 ± 0.0820.266
5NV-deCYPher0.330 ± 0.0710.360
6sandeepbii0.325 ± 0.0670.365
7harinu1230.322 ± 0.0680.362
8NIPERKOLKATA_PI_LAB0.312 ± 0.0800.312
9jeremy0.309 ± 0.0680.351
10N283T0.305 ± 0.0680.346
11wikke690.302 ± 0.0650.345
12preheat-to-4500.301 ± 0.0690.338
13Zachary Kirby0.296 ± 0.0760.314
14horse-pusher0.292 ± 0.0730.326
15Chloie0.290 ± 0.0740.319
16MilkTeaEveryday0.287 ± 0.0670.331
17450nm0.285 ± 0.0660.328
18curiousone0.279 ± 0.0660.323
1901|96|30|5970.277 ± 0.0680.319
20KR LAB Bio0.277 ± 0.0610.319
RankUsernameMCC mean ± stdF1Report
1cyclinB0.552 ± 0.0340.686
2MilkTeaEveryday0.529 ± 0.0330.677
3EleanorRigby0.521 ± 0.0290.681
4preheat-to-4500.516 ± 0.0340.642
5NV-deCYPher0.510 ± 0.0340.659
6rasayan-labs0.506 ± 0.0350.654
7N283T0.502 ± 0.0340.661
8stir_bar0.500 ± 0.0330.667
9NIPERKOLKATA_PI_LAB0.488 ± 0.0330.662
10nova0.478 ± 0.0340.638
11harinu1230.477 ± 0.0340.636
12thinkMolecular0.477 ± 0.0350.633
13Lizard Wizard Gizzard0.476 ± 0.0300.655
14furtivepeony0.476 ± 0.0320.654
15karriram0.475 ± 0.0340.633
16SC380.475 ± 0.0350.637
17Zachary Kirby0.475 ± 0.0330.650
18Gashaw0.470 ± 0.0360.618
1901|96|30|5970.467 ± 0.0330.647
20jeremy0.465 ± 0.0360.625

A classification task contains much less information than a regression task (only one bit per compound, compared to a wide range of possible values per compound for a regression task). In addition, the CYP2D6 ground truth had only a small number of positives. This made overfitting to the live leaderboard more likely. Some teams tried new techniques, checked whether this changed performance on the live leaderboard, and reversed output classes if performance fell. Even keeping half the dataset hidden wasn’t enough to penalize this, since the final leaderboard included the compounds used for the live leaderboard.

The table below illustrates the overfitting. All top teams showed a noticeable drop-off in performance between their final leaderboard MA-MCC and an MA-MCC calculated post hoc on only the hidden compounds. This was a limitation of our challenge design. Since this was our first classification challenge, we are still learning the best way to score these. The published leaderboard is valid, as these teams performed best under the defined rules, but for future challenges we will use only the hidden compounds for the final leaderboard, not the entire test set. An extra congratulations to SC38, jeremy, and wikke69, who were our top three when scoring only on the hidden compounds!

LB Rank Leaderboard Name MA-MCC
(All compounds)
MA-MCC
(Hidden compounds)
LB Rank
(Only hidden compounds)
1 rasayan-labs 0.498 0.235 52
2 nova 0.432 0.234 53
3 NV-deCYPher 0.420 0.337 10
4 karriram 0.409 0.289 34
5 preheat-to-450 0.408 0.284 37
6 MilkTeaEveryday 0.408 0.336 11
7 N283T 0.403 0.344 7
8 NIPERKOLKATA_PI_LAB 0.400 0.269 42
9 harinu123 0.400 0.333 12
10 Asidsal11 0.389 0.215 55

Structure leaderboard

Our Structure task has 38 entries on the final leaderboard, spanning 4 performance tiers. With a much smaller dataset than the regression or classification tasks, it was harder to show statistically significant differences between entries, meaning the tiers spanned a wide range of entries on the final leaderboards.

RankUsernameLDDT-PLI mean ± stdRMSD ÅReportTier
1dargason0.481 ± 0.0433.437Tier 1
2curiousone0.454 ± 0.0453.574Tier 1
3harinu1230.449 ± 0.0413.644Tier 1
4Scigantic0.448 ± 0.0423.644Tier 1
5KaiGenesis0.446 ± 0.0423.802Tier 1
6discoverybytes0.440 ± 0.0333.618Tier 1
7Zachary Kirby0.438 ± 0.0323.622Tier 1
8willvith0.436 ± 0.0443.674Tier 1
9talindrew0.434 ± 0.0343.809Tier 1
10ADMET Bo$$0.433 ± 0.0343.814Tier 1
11rasayan-labs0.425 ± 0.0383.717Tier 1
12furtivepeony0.422 ± 0.0383.736Tier 1
13nova0.415 ± 0.0394.001Tier 1
14Athens Boltz-20.413 ± 0.0373.946Tier 2
1501|96|30|5970.413 ± 0.0303.970Tier 2
16chemops_cyp0.410 ± 0.0354.058Tier 2
17Asidsal110.410 ± 0.0353.931Tier 2
18ADMETForge0.409 ± 0.0344.070Tier 2
19mai0.406 ± 0.0333.997Tier 2
20coconut-research0.405 ± 0.0323.917Tier 2

How did we do?

We chose a "tiering" system to rank the entries on the leaderboard, which used a paired bootstrap method with the Benjamini-Hochberg procedure to control the false discovery rate to group entries that are not significantly distinct from each other, allowing us to accurately present the differences between entries at the top of the leaderboard. The three tracks had different tier distributions (Figure 1): Direct Inhibition was more finely resolved, with 103 entries split into 29 tiers and the top 5 spanning only 3 tiers. With 750 compounds scored across four isoforms, the bootstrap uncertainty on a single entry is only about ±0.01 ST-RAE, so even small gaps near the top resulted in real differences. In contrast, TDI performance was more homogeneous, with 62 entries split into five tiers, and teams ranked 4 to 57 sitting in just two tiers. The structure track was an even closer match, with 38 entries divided between four tiers, and Tier 1 holding the first 13 entries. Because the structure dataset spanned only 20 complexes, each entry has an error bar of about ±0.04 LDDT-PLI, almost as wide as the 0.07 separating the best entry (0.48) from the 13th (0.42).

Figure 1. Distribution of Tiers across the TDI, Direct Inhibition Top-30 and Structure leaderboards.

One notable observation in the final performance was that some isoforms were significantly harder to model than others. While 101 of the 103 final Direct Inhibition entries beat a naive mean prediction baseline (i.e., predicting the mean of the test set for all compounds, ST-RAE < 1), CYP2D6 proved to be a challenging target, with a median ST-RAE of 0.71. On the other hand, CYP2C9 and CYP3A4 were the most tractable (median ST-RAE 0.44 and 0.46), and CYP1A2 sat in the middle (0.52). In terms of ranking, the difference is even more stark, with the other three isoforms having a median Spearman correlation of 0.80-0.85, and CYP2D6 scoring 0.44. As we discussed in our interim leaderboard release, CYP2D6 was harder to predict because the train and test sets had completely different distributions due to the way we designed the test set (CYP2D6 Dose Response Curves were not available for expansion). As a result, the CYP2D6 test set was dominated by inactives (65% of compounds having a pIC50 below 4), compared to a more evenly distributed training set (9% below pIC50 4). As a result, models trained on this higher-potency training set systematically overpredicted the test set, and the entries that performed well on CYP2D6 were largely those that recalibrated downward. The TDI track showed a similar pattern. CYP3A4 TDI was reasonably learnable (median MCC 0.44, with the best at 0.55), while CYP2D6 TDI was harder (median 0.22, best 0.49). The culprit was class imbalance: only 44 of the 748 test compounds (5.9%) were CYP2D6 time-dependent inhibitors, compared with 21.6% in the training data, leaving very little positive signal.

The Structure track proved the hardest of the three. The best entry reached an LDDT-PLI of 0.48 (median 0.41), and only 8.9% of all submitted poses were within 2 Å BiSyRMSD of the experimental ligand position. Interestingly, with a median LDDT-PLI of 0.82, participants overwhelmingly found the right binding site but placed the ligand incorrectly within it. CYP3A4's notably large and flexible active site makes finding the correct pose challenging.

Figure 2. Performance distribution across CYP isoform and macro-average on each track.

Head-to-head comparisons

We have also added a head-to-head tab to the challenge’s Hugging Face space. You can pick any two entries and compare them side by side, now that the full ground truth is public. It is the quickest way to see whether a rank difference comes from a handful of outliers or from a consistent edge across the test set.

The CYP inhibition challenge had great participation across the three tracks

Y’all worked incredibly hard! The challenge ran from mid-August to the 3rd of November and collected 6,034 submissions in total: 3,741 from Direct Inhibition, 1,695 from TDI, and 598 in the Structure track. Together, this totaled a whopping 13.8 million individual predictions! Submissions came from 650 accounts, of which only 291 were eligible participants; the rest were repeated “ghost” accounts from teams that didn’t follow the challenge rules.

Figure 3 shows submission rates climbed steadily through September, jumped around the interim leaderboard, and then increased faster through the final week, with 207 submissions (eligible for the final leaderboard) received on the last day alone. Most participants submitted multiple times, with a median of 3 valid submissions in Direct Inhibition, 2 in TDI, and 4 in Structure, while the most persistent of you submitted 116 times across the challenge.

Figure 3. Submissions per day and cumulative unique participants across the three tracks.
Figure 4. More statistics on challenge submissions.

Plenty of you didn’t listen to us about not leaving your final submissions to the last minute. We received 271 submissions on the last day, 40 in the final hour, and one participant even submitted 4 seconds before the deadline (!!).

As always, these challenges wouldn't happen without you, our participants. Thank you for taking part, especially the 17 hard-working teams who appear on all three final leaderboards!

What’s next

The challenge may be officially over, but the fun is just getting started! Here is what you can look forward to in the coming weeks:

  • Unblinded dataset available now: The complete, unblinded dataset across all three tracks is officially live on Hugging Face!

  • Follow-up analysis & post-mortems: We’re diving deeper into the challenge results to extract key takeaways and performance trends across all three tracks, so stay tuned!

  • Webinars with the top participants: We'll host live webinars featuring the top-performing participants and teams, where you can hear directly about their modeling pipelines and lessons learned.

  • ML Innovation Award: In this challenge, we are also selecting a few submissions for the ML Innovation Award to highlight the competition's most creative approaches. The winners will be announced soon!

  • New OpenADMET Challenges: We’re far from done benchmarking ADMET prediction. Keep an eye out for the next challenge–it could launch as soon as next month!

Join our Discord channel and subscribe to our newsletter so you don't miss upcoming announcements and dataset releases!

Acknowledgements

We would like to thank our funders for their support of OpenADMET, in particular ARPA-H, Radial (part of the Astera Institute (https://ror.org/00ydx1s47)), Schrödinger Inc., the Gates Foundation and the OpenAI Foundation. We would also like to thank our partners Enamine, Hugging Face, OpenEye, CDD Vault, Discovery Life Sciences, and the beamline staff at NSLS-II for their support.

This work is supported by the Advanced Research Projects Agency for Health (ARPA-H) under AVOID-OME, and Award Number 1AY1AX000035. The contents are those of the authors. They may not reflect the policies of the Department of Health and Human Services or the U.S. government. The content is solely the responsibility of the authors and does not necessarily represent the official views of the Advanced Research Projects Agency for Health.