google-deepmind / google-deepmind/alphafold3

CCD_6MZ (N6-methyladenosine) RNA modification causes AlphaFold Server jobs to fail; other RNA modifications unaffected

Open
#739 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
8.6k
Forks
1.4k
PR merge metrics
No merged PRs in 30d

Description

### Summary

Since some point between 2026-07-29 and 2026-09-02, every AlphaFold Server job I submit containing an RNA modification of type `CCD_6MZ` (N6-methyladenosine) fails. Jobs are accepted at submission, run for 15-18 hours, then end with no models and no error text. Identical files succeeded before that window, and a job differing only in the modification code succeeds now.

`CCD_6MZ` is the code for m6A, the most abundant internal mRNA modification, so this blocks a common class of protein-RNA prediction.

### Minimal reproducible example

Two jobs differing by **exactly one string**. Same 49-nt RNA, same modified position, same 187-residue protein chain.

**Fails** (`CCD_6MZ`):

```json
[
{
"name": "DIAG_1_6MZ_verbatim",
"modelSeeds": [],
"sequences": [
{
"proteinChain": {
"sequence": "TGAAPYSSFMQAPEQEMVQVFIPAQAVGAIIGKKGQHIKQLSRFASASIKIAPPETPDSKVRMVIITGPPEAQFKAQGRIYGKLKEENFFGPKEEVKLETHIRVPASAAGRVIGKGGKTVNELQNLTAAEVVVPRDQTPDENDQVIVKIIGHFYASQMAQRKIRDILAQVKQQHQKGQSNQAQARRK",
"count": 1,
"useStructureTemplate": true,
"maxTemplateDate": "2025-02-02"
}
},
{
"rnaSequence": {
"sequence": "AAGCAUGGACUGUGCCACACACCCAGUGAUCCAUCCAAAAACAAGGACU",
"count": 1,
"modifications": [
{
"modificationType": "CCD_6MZ",
"basePosition": 9
}
]
}
}
],
"dialect": "alphafoldserver",
"version": 1
}
]
```

**Succeeds** (`CCD_MA6`), 5 models with the modified residue present in the coordinates:

```json
[
{
"name": "DIAG_4_MA6_on_A",
"modelSeeds": [],
"sequences": [
{
"proteinChain": {
"sequence": "TGAAPYSSFMQAPEQEMVQVFIPAQAVGAIIGKKGQHIKQLSRFASASIKIAPPETPDSKVRMVIITGPPEAQFKAQGRIYGKLKEENFFGPKEEVKLETHIRVPASAAGRVIGKGGKTVNELQNLTAAEVVVPRDQTPDENDQVIVKIIGHFYASQMAQRKIRDILAQVKQQHQKGQSNQAQARRK",
"count": 1,
"useStructureTemplate": true,
"maxTemplateDate": "2025-02-02"
}
},
{
"rnaSequence": {
"sequence": "AAGCAUGGACUGUGCCACACACCCAGUGAUCCAUCCAAAAACAAGGACU",
"count": 1,
"modifications": [
{
"modificationType": "CCD_MA6",
"basePosition": 9
}
]
}
}
],
"dialect": "alphafoldserver",
"version": 1
}
]
```

### Full diagnostic panel

Six jobs submitted together on 2026-09-06, one account, same day, each about 236 tokens, one variable changed per job. All six input files are given in full at the end of this report.

| job | what changed | RNA | outcome |
| --- | --- | --- | --- |
| `DIAG_1_6MZ_verbatim` | CCD_6MZ on the adenosine at position 9 | 49 nt | **FAILED, no models returned** |
| `DIAG_2_no_mod` | no modification (control) | 49 nt | 5 models |
| `DIAG_3_PSU_on_U` | CCD_PSU on the uridine at position 6 | 49 nt | 5 models; PSU present (20 atoms) |
| `DIAG_4_MA6_on_A` | CCD_MA6 on the same adenosine at position 9 | 49 nt | 5 models; MA6 present (24 atoms) |
| `DIAG_5_6MZ_minimal` | CCD_6MZ on the adenosine at position 9, 20-nt RNA | 20 nt | **FAILED, no models returned** |
| `DIAG_6_protein_PTM` | CCD_SEP on the protein chain, RNA unmodified | 49 nt | 5 models; SEP present (10 atoms) |

The failure is therefore specific to `CCD_6MZ`. It is not RNA modifications in general (`CCD_PSU` works), not N6-substituted adenosine in general (`CCD_MA6`, the N6,N6-dimethyl analogue, works on the same adenosine at the same position), not chemical modification in general (`CCD_SEP` on the protein works), and not RNA length (`CCD_6MZ` fails at both 20 and 49 nt).

### Scale and history

| batch | submitted | `CCD_6MZ` jobs | outcome |
| --- | --- | --- | --- |
| 1 | 2026-05-05 and 05-07 | 83 | all returned models |
| 2 | 2026-07-28 and 07-29 | 76 | all returned models |
| 3 | 2026-09-02 | 38 | **0 returned, 38 failed** |

Last known-good submission **2026-07-29**, first known-bad **2026-09-02**. The September batch went out across five separate accounts and failed on all of them, so it is not account-scoped.

**14 of the 38 September failures are byte-identical JSON to jobs that returned five models each in July.** Same file, same service, different outcome.

In that same September submission, 94 jobs carrying no modification succeeded with five seeds each. The partition on the presence of `CCD_6MZ` is complete: 38 of 38 modified jobs failed, 0 of 94 unmodified jobs failed. The batch contains 38 matched pairs differing only in whether the adenosine carries `CCD_6MZ`; the modified job failed in all 38 pairs and the unmodified one in none.

### Why the input does not appear to be at fault

- `CCD_6MZ` is still listed in the allowed RNA modification set in `server/README.md`, with unchanged field names (`modificationType`, `basePosition`) and the `CCD_` prefix. The submitted JSON matches it.
- The only two 2026 commits to `server/README.md` (2026-03-31 and 2026-04-22) predate the July batch that succeeded, so no documented specification change explains a regression beginning after 2026-07-29.
- The failing files are far below the token limit: maximum 1117 tokens against a 5000 cap.

### Impact

Any protein-RNA prediction involving m6A readers, writers or erasers is blocked. In our case 38 jobs in a site-directed-mutagenesis design cannot run, and the blocked state is the reference state of the experiment, so the incomplete arm cannot simply be dropped.

`CCD_MA6` is not a workaround: it is N6,**N6-di**methyladenosine (C12H18N5O7P, two methyl carbons, no hydrogen remaining on N6), a chemically different modification written by different enzymes.

### Environment

- AlphaFold Server (alphafoldserver.com), public tier, browser submission
- `"dialect": "alphafoldserver"`, `"version": 1`
- Five separate accounts, same behaviour on all

### What would help

1. Confirmation of whether `CCD_6MZ` is currently broken server-side.
2. If it has been withdrawn deliberately, removing it from the documented allowed list so jobs fail at submission rather than after 18 hours.
3. Surfacing a failure reason in the job UI. A failed job currently gives no diagnostic text, which is why localising this took three submission rounds.

All six diagnostic input files

`DIAG_1_6MZ_verbatim.json`

```json
[
{
"name": "DIAG_1_6MZ_verbatim",
"modelSeeds": [],
"sequences": [
{
"proteinChain": {
"sequence": "TGAAPYSSFMQAPEQEMVQVFIPAQAVGAIIGKKGQHIKQLSRFASASIKIAPPETPDSKVRMVIITGPPEAQFKAQGRIYGKLKEENFFGPKEEVKLETHIRVPASAAGRVIGKGGKTVNELQNLTAAEVVVPRDQTPDENDQVIVKIIGHFYASQMAQRKIRDILAQVKQQHQKGQSNQAQARRK",
"count": 1,
"useStructureTemplate": true,
"maxTemplateDate": "2025-02-02"
}
},
{
"rnaSequence": {
"sequence": "AAGCAUGGACUGUGCCACACACCCAGUGAUCCAUCCAAAAACAAGGACU",
"count": 1,
"modifications": [
{
"modificationType": "CCD_6MZ",
"basePosition": 9
}
]
}
}
],
"dialect": "alphafoldserver",
"version": 1
}
]
```

`DIAG_2_no_mod.json`

```json
[
{
"name": "DIAG_2_no_mod",
"modelSeeds": [],
"sequences": [
{
"proteinChain": {
"sequence": "TGAAPYSSFMQAPEQEMVQVFIPAQAVGAIIGKKGQHIKQLSRFASASIKIAPPETPDSKVRMVIITGPPEAQFKAQGRIYGKLKEENFFGPKEEVKLETHIRVPASAAGRVIGKGGKTVNELQNLTAAEVVVPRDQTPDENDQVIVKIIGHFYASQMAQRKIRDILAQVKQQHQKGQSNQAQARRK",
"count": 1,
"useStructureTemplate": true,
"maxTemplateDate": "2025-02-02"
}
},
{
"rnaSequence": {
"sequence": "AAGCAUGGACUGUGCCACACACCCAGUGAUCCAUCCAAAAACAAGGACU",
"count": 1
}
}
],
"dialect": "alphafoldserver",
"version": 1
}
]
```

`DIAG_3_PSU_on_U.json`

```json
[
{
"name": "DIAG_3_PSU_on_U",
"modelSeeds": [],
"sequences": [
{
"proteinChain": {
"sequence": "TGAAPYSSFMQAPEQEMVQVFIPAQAVGAIIGKKGQHIKQLSRFASASIKIAPPETPDSKVRMVIITGPPEAQFKAQGRIYGKLKEENFFGPKEEVKLETHIRVPASAAGRVIGKGGKTVNELQNLTAAEVVVPRDQTPDENDQVIVKIIGHFYASQMAQRKIRDILAQVKQQHQKGQSNQAQARRK",
"count": 1,
"useStructureTemplate": true,
"maxTemplateDate": "2025-02-02"
}
},
{
"rnaSequence": {
"sequence": "AAGCAUGGACUGUGCCACACACCCAGUGAUCCAUCCAAAAACAAGGACU",
"count": 1,
"modifications": [
{
"modificationType": "CCD_PSU",
"basePosition": 6
}
]
}
}
],
"dialect": "alphafoldserver",
"version": 1
}
]
```

`DIAG_4_MA6_on_A.json`

```json
[
{
"name": "DIAG_4_MA6_on_A",
"modelSeeds": [],
"sequences": [
{
"proteinChain": {
"sequence": "TGAAPYSSFMQAPEQEMVQVFIPAQAVGAIIGKKGQHIKQLSRFASASIKIAPPETPDSKVRMVIITGPPEAQFKAQGRIYGKLKEENFFGPKEEVKLETHIRVPASAAGRVIGKGGKTVNELQNLTAAEVVVPRDQTPDENDQVIVKIIGHFYASQMAQRKIRDILAQVKQQHQKGQSNQAQARRK",
"count": 1,
"useStructureTemplate": true,
"maxTemplateDate": "2025-02-02"
}
},
{
"rnaSequence": {
"sequence": "AAGCAUGGACUGUGCCACACACCCAGUGAUCCAUCCAAAAACAAGGACU",
"count": 1,
"modifications": [
{
"modificationType": "CCD_MA6",
"basePosition": 9
}
]
}
}
],
"dialect": "alphafoldserver",
"version": 1
}
]
```

`DIAG_5_6MZ_minimal.json`

```json
[
{
"name": "DIAG_5_6MZ_minimal",
"modelSeeds": [],
"sequences": [
{
"proteinChain": {
"sequence": "TGAAPYSSFMQAPEQEMVQVFIPAQAVGAIIGKKGQHIKQLSRFASASIKIAPPETPDSKVRMVIITGPPEAQFKAQGRIYGKLKEENFFGPKEEVKLETHIRVPASAAGRVIGKGGKTVNELQNLTAAEVVVPRDQTPDENDQVIVKIIGHFYASQMAQRKIRDILAQVKQQHQKGQSNQAQARRK",
"count": 1,
"useStructureTemplate": true,
"maxTemplateDate": "2025-02-02"
}
},
{
"rnaSequence": {
"sequence": "AAGCAUGGACUGUGCCACAC",
"count": 1,
"modifications": [
{
"modificationType": "CCD_6MZ",
"basePosition": 9
}
]
}
}
],
"dialect": "alphafoldserver",
"version": 1
}
]
```

`DIAG_6_protein_PTM.json`

```json
[
{
"name": "DIAG_6_protein_PTM",
"modelSeeds": [],
"sequences": [
{
"proteinChain": {
"sequence": "TGAAPYSSFMQAPEQEMVQVFIPAQAVGAIIGKKGQHIKQLSRFASASIKIAPPETPDSKVRMVIITGPPEAQFKAQGRIYGKLKEENFFGPKEEVKLETHIRVPASAAGRVIGKGGKTVNELQNLTAAEVVVPRDQTPDENDQVIVKIIGHFYASQMAQRKIRDILAQVKQQHQKGQSNQAQARRK",
"count": 1,
"useStructureTemplate": true,
"maxTemplateDate": "2025-02-02",
"modifications": [
{
"ptmType": "CCD_SEP",
"ptmPosition": 7
}
]
}
},
{
"rnaSequence": {
"sequence": "AAGCAUGGACUGUGCCACACACCCAGUGAUCCAUCCAAAAACAAGGACU",
"count": 1
}
}
],
"dialect": "alphafoldserver",
"version": 1
}
]
```

The 38 failed production job names (2026-09-02)

```
CNOT1_site02_pos466_IG1KH34_WTm6A
CNOT1_site02_pos466_IG3KH34_WTm6A
DYNLL1_extra_pos47_IG1FL_WTm6A_run1
DYNLL1_extra_pos47_IG1FL_WTm6A_run2
DYNLL1_extra_pos47_IG1KH34_WTm6A_run1
DYNLL1_extra_pos47_IG1KH34_WTm6A_run2
DYNLL1_extra_pos47_IG3FL_WTm6A_run1
DYNLL1_extra_pos47_IG3FL_WTm6A_run2
DYNLL1_extra_pos47_IG3KH34_WTm6A_run1
DYNLL1_extra_pos47_IG3KH34_WTm6A_run2
DYNLL1_site01_pos9_IG1KH34_WTm6A
DYNLL1_site01_pos9_IG3KH34_WTm6A
GNA11_site02_pos1084_IG1KH34_WTm6A
GNA11_site02_pos1084_IG3KH34_WTm6A
HNF4A_extra_pos1474_IG1FL_WTm6A_run1
HNF4A_extra_pos1474_IG1FL_WTm6A_run2
HNF4A_extra_pos1474_IG1KH34_WTm6A_run1
HNF4A_extra_pos1474_IG1KH34_WTm6A_run2
HNF4A_extra_pos1474_IG3FL_WTm6A_run1
HNF4A_extra_pos1474_IG3FL_WTm6A_run2
HNF4A_extra_pos1474_IG3KH34_WTm6A_run1
HNF4A_extra_pos1474_IG3KH34_WTm6A_run2
HNF4A_site03_pos875_IG1KH34_WTm6A
HNF4A_site03_pos875_IG3KH34_WTm6A
HNF4A_site04_pos1085_IG1KH34_WTm6A
HNF4A_site04_pos1085_IG3KH34_WTm6A
HNF4A_site07_pos1833_IG1KH34_WTm6A
HNF4A_site07_pos1833_IG3KH34_WTm6A
HNF4A_site09_pos2075_IG1KH34_WTm6A
HNF4A_site09_pos2075_IG3KH34_WTm6A
SREBF2_extra_pos373_IG1FL_WTm6A_run1
SREBF2_extra_pos373_IG1FL_WTm6A_run2
SREBF2_extra_pos373_IG1KH34_WTm6A_run1
SREBF2_extra_pos373_IG1KH34_WTm6A_run2
SREBF2_extra_pos373_IG3FL_WTm6A_run1
SREBF2_extra_pos373_IG3FL_WTm6A_run2
SREBF2_extra_pos373_IG3KH34_WTm6A_run1
SREBF2_extra_pos373_IG3KH34_WTm6A_run2
```

Matched pairs from the same submission: 38 pairs with identical RNA, differing only in whether the adenosine carries CCD_6MZ

Each row is one site and one protein complex. The two jobs have the same RNA sequence, the same length and the same protein chains. The only difference is the presence of the modification. Both were submitted on 2026-09-02.

| RNA nt | job with `CCD_6MZ` | outcome | job with no modification | outcome |
| --- | --- | --- | --- | --- |
| 81 | `CNOT1_site02_pos466_IG1KH34_WTm6A` | failed | `CNOT1_site02_pos466_IG1KH34_WTnoMod` | 5 models |
| 81 | `CNOT1_site02_pos466_IG3KH34_WTm6A` | failed | `CNOT1_site02_pos466_IG3KH34_WTnoMod` | 5 models |
| 81 | `DYNLL1_extra_pos47_IG1FL_WTm6A_run1` | failed | `DYNLL1_extra_pos47_IG1FL_WTnoMod_run1` | 5 models |
| 81 | `DYNLL1_extra_pos47_IG1FL_WTm6A_run2` | failed | `DYNLL1_extra_pos47_IG1FL_WTnoMod_run2` | 5 models |
| 81 | `DYNLL1_extra_pos47_IG1KH34_WTm6A_run1` | failed | `DYNLL1_extra_pos47_IG1KH34_WTnoMod_run1` | 5 models |
| 81 | `DYNLL1_extra_pos47_IG1KH34_WTm6A_run2` | failed | `DYNLL1_extra_pos47_IG1KH34_WTnoMod_run2` | 5 models |
| 81 | `DYNLL1_extra_pos47_IG3FL_WTm6A_run1` | failed | `DYNLL1_extra_pos47_IG3FL_WTnoMod_run1` | 5 models |
| 81 | `DYNLL1_extra_pos47_IG3FL_WTm6A_run2` | failed | `DYNLL1_extra_pos47_IG3FL_WTnoMod_run2` | 5 models |
| 81 | `DYNLL1_extra_pos47_IG3KH34_WTm6A_run1` | failed | `DYNLL1_extra_pos47_IG3KH34_WTnoMod_run1` | 5 models |
| 81 | `DYNLL1_extra_pos47_IG3KH34_WTm6A_run2` | failed | `DYNLL1_extra_pos47_IG3KH34_WTnoMod_run2` | 5 models |
| 49 | `DYNLL1_site01_pos9_IG1KH34_WTm6A` | failed | `DYNLL1_site01_pos9_IG1KH34_WTnoMod` | 5 models |
| 49 | `DYNLL1_site01_pos9_IG3KH34_WTm6A` | failed | `DYNLL1_site01_pos9_IG3KH34_WTnoMod` | 5 models |
| 81 | `GNA11_site02_pos1084_IG1KH34_WTm6A` | failed | `GNA11_site02_pos1084_IG1KH34_WTnoMod` | 5 models |
| 81 | `GNA11_site02_pos1084_IG3KH34_WTm6A` | failed | `GNA11_site02_pos1084_IG3KH34_WTnoMod` | 5 models |
| 81 | `HNF4A_extra_pos1474_IG1FL_WTm6A_run1` | failed | `HNF4A_extra_pos1474_IG1FL_WTnoMod_run1` | 5 models |
| 81 | `HNF4A_extra_pos1474_IG1FL_WTm6A_run2` | failed | `HNF4A_extra_pos1474_IG1FL_WTnoMod_run2` | 5 models |
| 81 | `HNF4A_extra_pos1474_IG1KH34_WTm6A_run1` | failed | `HNF4A_extra_pos1474_IG1KH34_WTnoMod_run1` | 5 models |
| 81 | `HNF4A_extra_pos1474_IG1KH34_WTm6A_run2` | failed | `HNF4A_extra_pos1474_IG1KH34_WTnoMod_run2` | 5 models |
| 81 | `HNF4A_extra_pos1474_IG3FL_WTm6A_run1` | failed | `HNF4A_extra_pos1474_IG3FL_WTnoMod_run1` | 5 models |
| 81 | `HNF4A_extra_pos1474_IG3FL_WTm6A_run2` | failed | `HNF4A_extra_pos1474_IG3FL_WTnoMod_run2` | 5 models |
| 81 | `HNF4A_extra_pos1474_IG3KH34_WTm6A_run1` | failed | `HNF4A_extra_pos1474_IG3KH34_WTnoMod_run1` | 5 models |
| 81 | `HNF4A_extra_pos1474_IG3KH34_WTm6A_run2` | failed | `HNF4A_extra_pos1474_IG3KH34_WTnoMod_run2` | 5 models |
| 81 | `HNF4A_site03_pos875_IG1KH34_WTm6A` | failed | `HNF4A_site03_pos875_IG1KH34_WTnoMod` | 5 models |
| 81 | `HNF4A_site03_pos875_IG3KH34_WTm6A` | failed | `HNF4A_site03_pos875_IG3KH34_WTnoMod` | 5 models |
| 81 | `HNF4A_site04_pos1085_IG1KH34_WTm6A` | failed | `HNF4A_site04_pos1085_IG1KH34_WTnoMod` | 5 models |
| 81 | `HNF4A_site04_pos1085_IG3KH34_WTm6A` | failed | `HNF4A_site04_pos1085_IG3KH34_WTnoMod` | 5 models |
| 81 | `HNF4A_site07_pos1833_IG1KH34_WTm6A` | failed | `HNF4A_site07_pos1833_IG1KH34_WTnoMod` | 5 models |
| 81 | `HNF4A_site07_pos1833_IG3KH34_WTm6A` | failed | `HNF4A_site07_pos1833_IG3KH34_WTnoMod` | 5 models |
| 81 | `HNF4A_site09_pos2075_IG1KH34_WTm6A` | failed | `HNF4A_site09_pos2075_IG1KH34_WTnoMod` | 5 models |
| 81 | `HNF4A_site09_pos2075_IG3KH34_WTm6A` | failed | `HNF4A_site09_pos2075_IG3KH34_WTnoMod` | 5 models |
| 81 | `SREBF2_extra_pos373_IG1FL_WTm6A_run1` | failed | `SREBF2_extra_pos373_IG1FL_WTnoMod_run1` | 5 models |
| 81 | `SREBF2_extra_pos373_IG1FL_WTm6A_run2` | failed | `SREBF2_extra_pos373_IG1FL_WTnoMod_run2` | 5 models |
| 81 | `SREBF2_extra_pos373_IG1KH34_WTm6A_run1` | failed | `SREBF2_extra_pos373_IG1KH34_WTnoMod_run1` | 5 models |
| 81 | `SREBF2_extra_pos373_IG1KH34_WTm6A_run2` | failed | `SREBF2_extra_pos373_IG1KH34_WTnoMod_run2` | 5 models |
| 81 | `SREBF2_extra_pos373_IG3FL_WTm6A_run1` | failed | `SREBF2_extra_pos373_IG3FL_WTnoMod_run1` | 5 models |
| 81 | `SREBF2_extra_pos373_IG3FL_WTm6A_run2` | failed | `SREBF2_extra_pos373_IG3FL_WTnoMod_run2` | 5 models |
| 81 | `SREBF2_extra_pos373_IG3KH34_WTm6A_run1` | failed | `SREBF2_extra_pos373_IG3KH34_WTnoMod_run1` | 5 models |
| 81 | `SREBF2_extra_pos373_IG3KH34_WTm6A_run2` | failed | `SREBF2_extra_pos373_IG3KH34_WTnoMod_run2` | 5 models |

38 of 38 modified jobs failed; 38 of 38 unmodified counterparts returned five models.

Contributor guide

Open the contributing guide

Research direction

Start with the documented RNA modification list in server/README.md and compare the named diagnostic inputs, especially DIAG_1_6MZ_verbatim.json, DIAG_4_MA6_on_A.json, and DIAG_5_6MZ_minimal.json. Trace how CCD_6MZ is accepted and processed; done means the modification no longer causes silent failed jobs, or invalid submissions return a clear failure reason.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.