Genomic Intelligence Promoter Atlas

Genomic Intelligence began this project at the ReAgent2026 hackathon. The results inspired us to take it further and build a promoter atlas for gene therapy. Promoters control where a gene is active, and the right promoter can help keep a therapeutic gene active in the intended cells and quiet elsewhere. This atlas uses an expression model to look for promoters predicted to be active in a chosen cell type and quiet in another. We scored 19,987 protein-coding promoters in 11 cell types relevant to biomedical research. We also started from the best natural promoters and designed new 600 bp sequences. Of 832 designed candidates tested, 64 are included in this release. The sections below explain how every prediction was made, checked and compared.

Research use only. Not for clinical, diagnostic or therapeutic use, and nothing here has been measured in a wet lab. Read the limitations.

natural — real human promoters
19,987 × 11
Each protein-coding promoter was scored in 11 cell types relevant to biomedical research. This covers all 110 ways to choose one target and one off-target cell type.
designed — sequences in no genome
64 selected
We evaluated 832 designed candidates; 402 passed all six checks. This release includes 64 from 2 selected runs that used the same FAM47C genomic window and the same six-step selection procedure: 17 for Ventricular cardiomyocyte ON / Hepatocyte (liver parenchymal cell) OFF; 47 for Skeletal muscle myofiber ON / Hepatocyte (liver parenchymal cell) OFF. The other 338 passing designs were tested in different DNA surroundings or for other ON-target/OFF-target objectives, so they are published separately rather than ranked in the same table. See run by run, all 402.
design over nature
98–557×
The model reports ln(quantile-normalised TPM + 1). We exponentiate the ON-minus-OFF difference to show a predicted target/off-target ratio on the normalised TPM + 1 scale, never raw TPM. This checkpoint preserves ranking but compresses magnitudes, so these ratios are not calibrated absolute expression. Ventricular cardiomyocyte ON / Hepatocyte (liver parenchymal cell) OFF: best design 557.1× versus 107.8× for TNNT2 — a 5.2× improvement. Skeletal muscle myofiber ON / Hepatocyte (liver parenchymal cell) OFF: best design 97.7× versus 7.3× for TRIM54 — a 13.4× improvement. All were tested in the same FAM47C window.
64 designed sequences19,987 natural promoters, ranked
Design pipelineLimitations — what this is not

Before using the downloads: read the model, genomic-window and selection sections below. They explain the fields and why raw scores from different settings must not be compared directly.

Data files: natural candidates (TSV) · every design candidate with its six checks (TSV) · designs (FASTA) · original training descriptions (JSON) · natural release manifest (JSON) · designed release manifest, including the limitations block (JSON) · attempts that were not selected, with their per-candidate measurements (JSON) · synthesis handoff files (FASTA, order CSV, README). Every file is checked against its schema and has a checksum for verifying that it has not changed.

What the model does

The model takes two inputs: a DNA sequence containing a promoter and a plain-text description of the experiment and cell type. It predicts how active a gene would be. We give the model the same DNA twice: once for the target cell type and once for the off-target cell type. We call the difference between those two predicted scores the margin. A larger positive margin means the promoter is predicted to be more selective for the target cell type.

One sequence, two questions

TNNT2 promoter600 bp, in theFAM47C windowidentical in both rowsTarget cell typeVentricular cardiomyocyteOff-target cell typeHepatocyte (liver parenchymal cell)4.656predicted expression-0.024predicted expressionmargin4.680
Same DNA, two cell types. During training, the model received plain-text descriptions of the experiments and cell types behind each expression measurement. Here we keep the DNA unchanged and ask the model once for the target cell and once for the off-target cell. The target score minus the off-target score is the margin. This example uses the TNNT2 promoter in the FAM47C genomic window.

We use the cell-type descriptions that the model saw during training. The model was trained to pair DNA with plain-text descriptions from transcriptomics experiment metadata, so using those original descriptions fits its expectations. For the 11 cell types in this atlas, we found the descriptions in the training data and use them unchanged. Rewording a description might change the model output, so each record includes the exact original wording. Download the natural-release descriptions or the designed-release descriptions and their measured variation.

The surrounding DNA also changes the answer. Regulatory elements can strengthen or suppress one another, so nearby genomic DNA is biologically expected to affect promoter activity. We are looking for promoters that preserve their selectivity as autonomously as possible. We therefore evaluate each 600 bp promoter inside defined, longer stretches of DNA, which we call genomic windows, and test whether its advantage survives a change of window. Every result names its window, and raw model scores are compared only within the same one.

The window decides the answer

The same 600 bp ALB promoter, the same training description for hepatocytes and the same model, tested in two genomic windows. Grey bar: the range of off-target expression values for every sequence tested in that window.

FOXB2FOXB2 range of off-target expression over 173 inserts: -0.046 to 1.281, i.e. 1.327 log unitsrange 1.327ALB, 600 bp, in FOXB2: predicted hepatocyte expression -0.0119ALB -0.012FAM47CFAM47C range of off-target expression over 173 inserts: -0.051 to 4.844, i.e. 4.895 log unitsrange 4.895ALB, 600 bp, in FAM47C: predicted hepatocyte expression 4.8438ALB 4.844024predicted hepatocyte expression, ln(quantile-normalised TPM + 1)
The surrounding DNA changes the prediction. In the FOXB2 window, the model gives the ALB promoter a hepatocyte score of -0.012. In the FAM47C window, the same promoter scores 4.844. The full range across the tested sequences is 1.327 log units in FOXB2 and 4.895 in FAM47C. We therefore name the genomic window beside every result and compare a design only with a natural promoter tested in the same window.

How promoters are found and designed

First, we search for the best natural promoter for each target and off-target cell-type pair. We score every human protein-coding promoter in both cell types and rank promoters by the difference. Across the 11 cell types studied here, that is 19,987 promoters and all 110 possible ordered pairs.

Next, we try to improve on those natural promoters. A genetic algorithm uses the strongest natural promoters as starting points. It modifies and recombines parts of their DNA, keeps sequences with a larger target-versus-off-target difference, and repeats. The result is a synthetic 600 bp promoter. We use this design step even when the natural search already found a strong promoter. In the cardiac pair the promoter it had to beat — TNNT2 at 4.68 in FAM47C — is a strong natural promoter, not a gap in the genome.

We report designed promoters only when the comparison is stable enough to interpret. An ON/OFF pair specifies the cell type where a promoter should be active and the cell type where it should remain quiet. The not-selected file has 3 entries. 2 are additional ON/OFF pairs — CNS neuron ON / Hepatocyte (liver parenchymal cell) OFF; CNS neuron ON / Astrocyte OFF — that produced no selected designs. The remaining 1 entry retests the already-selected cardiac and skeletal-muscle pairs in a different genomic window; it is retained as a context control, not as a third new pair. The measurements behind each decision remain available under what was attempted and not selected.

The five stages below summarize the full workflow. Each stage links to the data it produced.

01Use the cell-type descriptions from model training11 cell types checkedFor each of the 11 cell types, we use the original plain-text experiment description from the training data. This matches the model's training inputs. We test how much the answer changes when that wording is paraphrased and check known marker genes before using it.02Score every natural promoter for each cell-type pair19,987 promotersEach protein-coding promoter is tested once for the target cell type and once for the off-target cell type. The model receives a 9,198 bp stretch of DNA centred on the start of the main transcript. We rank by the difference between the two scores.03Separate a useful difference from model variation110 target/off-target pairsWe re-ask the same question with several equivalent phrasings to measure how much the model answer moves on its own. We then compare the same promoter's predicted activity in the ON-target and OFF-target cell types. When that ON-minus-OFF difference is larger than the wording-related variation, it is reportable; smaller differences are labelled uncertain or not a finding.04Design synthetic promoters832 candidates recordedA genetic algorithm starts from the best natural promoters, changes and recombines 100–200 bp blocks, and scores every candidate in the target and off-target cell types. We publish the result of all six checks for every candidate, whether it passed or failed.05Compare natural-promoter rankings with MPRA measurements15,041 gene windows with a HepG2 reporter measurementMPRA tests short, isolated DNA fragments in a standard reporter construct. That is closer to the intended use of an autonomous promoter than the endogenous RNA-seq measurements used for model training. These measurements apply only to natural promoters and test liver off-target activity, not activity in the requested target cells.

For reproducibility, each release page lists the genome assembly, gene annotation, model version, checkpoint, units and output definition: the natural release · the designed release.

How we design a promoter

The algorithm starts from natural promoters that already score well for the chosen cell-type pair. It creates variants by changing and recombining blocks of DNA, scores every variant in both cell types, keeps the strongest candidates and repeats. The starting promoters are the seeds, and one round of creating and testing variants is a generation.

1 — start from natural promoters

The first population is 25 real human promoters — the best natural candidates the screen found for this pair, each already tested in this genomic window — plus 39 mutated copies of them to fill the 64 slots. Nothing is invented from scratch. For the cardiac pair the strongest starting promoter is TNNT2, at a margin of 4.6801 in the FAM47C window; that number is what every later design has to beat.

2 — change DNA blocks, not individual bases

Each new candidate receives 20 edits that swap, duplicate or reverse-complement 100–200 bp blocks. Its total length remains 600 bp, and some candidates combine blocks from two parents (crossover probability 0.6). We use blocks because the model reads DNA in groups of bases; a single-letter change often leaves its answer unchanged.

3 — score target and off-target cells

Every candidate is placed in the genomic window and scored for both cell types. The target score minus the off-target score is the margin. When several off-target measurements exist, the algorithm uses the highest value, not their average. A candidate is also penalised if its target score is below 0.0554, a limit set from control promoters before the design run. This prevents a sequence from appearing selective simply because it is quiet in both cell types.

4 — keep the strongest candidates and repeat

In each generation the algorithm creates 64 new candidates and keeps the strongest 64. The top-ranked candidate is carried into the next generation unchanged. The planned limit is 40 generations. The run is reproducible from its random seed (20260804); every prediction is saved. This run used 5,207 model calls and 868 seconds.

The settings, cost and stopping point come from the published cardiac design run. Its record also contains the starting promoters and their scores. Source: releases/generated/pairs/*.json.

Published cardiac run: 64 candidates per generation; 40 generations; 25 natural starting promoters plus 39 modified copies; 20 block edits per new candidate; 100–200 bp blocks; 600 bp designed region inside a 9,198 bp genomic window.

The design runs stopped at their planned limit, not because they had found the best possible sequence. The cardiac run ended after 40 generations and last improved at generation 12. A longer run may find better designs. The published sequences are therefore the best found within this computing budget, not the best the method could ever produce.

Why the surrounding DNA matters

There are two reasons to test a 600 bp promoter inside surrounding DNA. First, some applications may maintain a promoter in an episomal construct, while others may integrate it into a chromosome. Nearby enhancers, silencers and other regulatory DNA can then alter its activity, so we prefer elements that remain as autonomous as possible across genomic contexts. Second, the model was trained on long endogenous sequences around transcription start sites, not isolated 600 bp promoters. Scoring the short fragment alone would be outside that training distribution and could make the prediction less stable. We therefore replace the native promoter in a 9,198 bp genomic window and score the whole sequence.

As the ALB example above shows, the surrounding DNA can change the answer substantially. We tested five genomic windows. Only FAM47C gave comparisons that we use for the selected designs; the other four remain published as negative or control results.

01FAM47C384 recordsused for the selected designs. A quiet window around the start of a real gene. All 64 selected designs were tested here.
02FOXB2192 recordsused in earlier tests, not final comparisons. The same ALB promoter received a very different score here than in FAM47C, so raw scores from the two windows cannot be compared.
03CCR5site_plus128 recordsnot used for final comparisons. Raw margins increased here, but natural promoters improved even more. The relative advantage of the designs therefore fell.
04AAVS1_plus64 recordsnot used. The empty window was already active in the neuronal cell type, and the design scores did not remain strong in a gene-start window.
05Keppel19_minus64 recordsnot used. Designs that looked strong here lost their ranking in FAM47C. The two windows did not agree on which design was best.

A larger raw margin did not always mean a better design. When we retested both selected cell-type pairs in a safe-harbour integration site, every raw margin increased. But the natural promoters improved even more, so the relative advantage of the designs fell (cardiac 5.2× in FAM47C → 3.3× there; skeletal 13.4× → 4.6×). These values compare target/off-target activity on the exponentiated normalised TPM + 1 scale, never raw TPM. The checkpoint preserves ranking but compresses magnitudes. We kept this window as a control, not as a source of selected designs. This is why we compare a design with the best natural promoter tested in the same window. A further 64 candidates were designed inside a plasmid cassette, a setting the model was not trained to evaluate. They are published separately and never mixed with genomic-window results.

Designed promoters compared with the strongest natural promoters

Each axis shows one ON-target/OFF-target cell-type pair. Designs and natural promoters were tested together in the same genomic window. The figure also shows established promoter controls, the minimum difference required for a reportable result and random DNA with the same base composition. These are ratios on the normalised TPM + 1 scale, not raw TPM; the checkpoint preserves ranking but compresses magnitudes.

A1 — Ventricular cardiomyocyte ON / Hepatocyte (liver parenchymal cell) OFF, every mark measured in FAM47C

TBGtbg__region_600bp — TBG (Homo sapiens, 600 bp): predicted target/off-target activity 0.3-fold in FAM47C, not_a_findingDESdes__region_600bp — Desmin promoter (human genomic) (Homo sapiens, 600 bp): predicted target/off-target activity 1.1-fold in FAM47C, not_a_findingMCKmck__region_600bp — MCK (Homo sapiens, 600 bp): predicted target/off-target activity 1.1-fold in FAM47C, not_a_findinghSYN1hsyn1__region_600bp — hSYN1 (Homo sapiens, 600 bp): predicted target/off-target activity 1.1-fold in FAM47C, not_a_findingNPPBnppb__region_600bp — Natriuretic peptide B promoter (human genomic) (Homo sapiens, 600 bp): predicted target/off-target activity 1.2-fold in FAM47C, not_a_findingRYR2ryr2__region_600bp — Ryanodine receptor 2 promoter (human genomic) (Homo sapiens, 600 bp): predicted target/off-target activity 1.2-fold in FAM47C, not_a_findingMYH7myh7__region_600bp — beta-myosin heavy chain promoter (human genomic) (Homo sapiens, 600 bp): predicted target/off-target activity 1.6-fold in FAM47C, not_a_findingNPPAnppa__region_600bp — Natriuretic peptide A promoter (human genomic) (Homo sapiens, 600 bp): predicted target/off-target activity 1.6-fold in FAM47C, not_a_findingcTnTctnt__region_600bp — cTnT (Homo sapiens, 600 bp): predicted target/off-target activity 107.8-fold in FAM47C, reportablerandom DNA 1.2×reportable floor 6.4×17 selected designs, predicted target/off-target activity 371.3- to 557.1-fold in FAM47C17 designs, 371.3–557.1×best natural: TNNT2 107.8×5.2× betterThe best design’s predicted target/off-target activity is 557.1-fold versus 107.8-fold for TNNT2, both measured in FAM47C in the same run: 5.2-fold improvement over the natural promoter1.0×7.4×54.6×403.4×predicted target/off-target activity ratio — fold scale, log-spaced, measured in FAM47Cmore selective →

The model outputs ln(quantile-normalised TPM + 1). We exponentiate the ON-minus-OFF difference, so the displayed values are predicted target/off-target ratios on the normalised TPM + 1 scale, never raw TPM. This checkpoint preserves ranking but compresses magnitudes. The best design is 5.2× more selective than TNNT2 on that fold scale. Both were tested in the FAM47C window, in the same run and with the same two cell-type descriptions. Control promoters are shown at 600 bp where that length is available. Details for every construct are on the /designed page.

A2 — Skeletal muscle myofiber ON / Hepatocyte (liver parenchymal cell) OFF, every mark measured in FAM47C

TBGtbg__region_600bp — TBG (Homo sapiens, 600 bp): predicted target/off-target activity 0.3-fold in FAM47C, not_a_findinghSYN1hsyn1__region_600bp — hSYN1 (Homo sapiens, 600 bp): predicted target/off-target activity 1.0-fold in FAM47C, not_a_findingDESdes__region_600bp — Desmin promoter (human genomic) (Homo sapiens, 600 bp): predicted target/off-target activity 1.1-fold in FAM47C, not_a_findingMCKmck__region_600bp — MCK (Homo sapiens, 600 bp): predicted target/off-target activity 1.1-fold in FAM47C, not_a_findingMYL1myl1__region_600bp — Myosin light chain 1 promoter (human genomic) (Homo sapiens, 600 bp): predicted target/off-target activity 1.1-fold in FAM47C, not_a_findingcTnTctnt__region_600bp — cTnT (Homo sapiens, 600 bp): predicted target/off-target activity 1.4-fold in FAM47C, not_a_findingrandom DNA 1.1×reportable floor 11.4×47 selected designs, predicted target/off-target activity 63.1- to 97.7-fold in FAM47C47 designs, 63.1–97.7×best natural: TRIM54 7.3×13.4× betterThe best design’s predicted target/off-target activity is 97.7-fold versus 7.3-fold for TRIM54, both measured in FAM47C in the same run: 13.4-fold improvement over the natural promoter1.0×7.4×54.6×predicted target/off-target activity ratio — fold scale, log-spaced, measured in FAM47Cmore selective →

The model outputs ln(quantile-normalised TPM + 1). We exponentiate the ON-minus-OFF difference, so the displayed values are predicted target/off-target ratios on the normalised TPM + 1 scale, never raw TPM. This checkpoint preserves ranking but compresses magnitudes. The best design is 13.4× more selective than TRIM54 on that fold scale. Both were tested in the FAM47C window, in the same run and with the same two cell-type descriptions. Control promoters are shown at 600 bp where that length is available. Details for every construct are on the /designed page.

Further right means more selective. The dashed arrow runs from the strongest natural promoter to the strongest design. Its label is the improvement in predicted target/off-target activity on the fold scale. TBG falls below 1× in the cardiac comparison because it is a liver promoter: the model predicts the opposite of the requested selectivity. Results from different genomic windows should not be compared directly. Source: releases/generated/pairs/*.json.

How the cardiac run narrowed 64 candidates to 17 designs

We defined six checks before scoring any designed sequence. Every candidate is published with the result of every check, including failures. This lets readers apply different cutoffs without rerunning the model. The counts below show what happened in the published cardiac design run.

S1Remove unchanged natural starting promoters64 kept · nothing dropped
S2Require a difference larger than expected model variation64 kept · nothing dropped
S3Require enough predicted activity in the target cell64 kept · nothing dropped
S4Keep off-target activity no higher than matched random DNA24 kept · −40 dropped
S5Remove near-duplicate sequences17 kept · −7 dropped
S6Take up to the requested number of designs17 kept · 33 short of the target

In the cardiac run, the off-target check removed most of the candidates. It required off-target activity no higher than this run’s own random DNA with the same base composition (-0.0091). The next check removed near-duplicate sequences, leaving 17 distinct designs. The final step simply reports that this is fewer than the requested 50; it does not add weaker candidates to fill the list.

Comparison with MPRA measurements

A massively parallel reporter assay (MPRA) takes short DNA sequences out of their native chromosomal neighbourhoods and measures them in standardised reporter constructs; this dataset used lentiviral delivery. That makes MPRA closer to the intended use of a compact, relatively autonomous promoter than the RNA-seq data used for model training, which measured endogenous genes in their native chromosomes. The available MPRA data cover HepG2, a liver-derived cell line, so they can test whether natural promoters predicted to be quiet in the liver off-target are active there. They cannot confirm activity in the requested target cells, and they do not test the designed promoters, which have not been built.

A reporter assay supports the off-target ranking

Another laboratory measured DNA activity in HepG2, a liver cell line. The bars show how often our top liver-quiet promoter windows contain an active element. The red line is the background rate across all measured gene windows. Lower than the red line is the expected result.

A1A1: 2 of 25 candidate windows contain a HepG2-active lentiMPRA element8.0% (2 of 25)A2A2: 1 of 24 candidate windows contain a HepG2-active lentiMPRA element4.2% (1 of 24)A4A4: 3 of 20 candidate windows contain a HepG2-active lentiMPRA element15.0% (3 of 20)background rate 35.7%across 15,041 gene windows carrying any measured HepG2 element
The active-element rate is lower than background for all three tested pairs, which supports the prediction that these natural promoters are quieter in liver. The assay cannot confirm activity in the target cell types, and it tested 200 bp fragments rather than our full genomic windows. We chose the activity cutoff because the released data contain no significance calls. One top-five cardiac candidate contains an active HepG2 element and is flagged. This evidence applies only to natural promoters.

Two datasets, kept separate

The natural and designed promoters are published as separate datasets. The model saw most natural promoters during training, so their ranking may partly reflect memory of those examples. The designed sequences do not exist in the human genome and could not have appeared in the training data. A single ranking would hide this important difference.

/natural
Real human promoters, ranked
Some independent laboratory data are available, but the model also saw most of these promoters during training. Browse
/designed
Sequences that exist in no genome
These sequences could not have been memorised, but no laboratory measurement exists. Browse

The comparison view uses only one like-for-like measure. It exponentiates the ON-minus-OFF model-score difference to put predicted target/off-target activity on a fold scale, then compares each design with the strongest natural promoter tested in the same genomic window for the same ON/OFF pair.

DNA synthesis checks

All 64 designs are 600 bp and fall within the published composition limits of the synthesis vendors we checked. None triggered a rule that would make a vendor reject the order.

However, all 64 designs carry the same warning: they contain a direct or inverted repeat at or above the length that vendors recommend avoiding. This follows from the design method, which duplicates and reverse-complements 100–200 bp blocks. A future run should change those operations instead of filtering the current designs after the fact.

Nothing here has been synthesised. Passing a vendor's automated intake checks does not mean that a sequence will work. The synthesis handoff files (FASTA, order CSV, README) carry the submittable FASTA, a CSV with every check beside every construct, and a machine-readable description of the checks.

What this is, and what it is not

Collaboration and contact

We are looking for research groups that can test these promoters in cells. For each design we provide the exact training descriptions, control results, measured model variation, genomic window, DNA sequence, checksum and synthesis files. A failed experiment would be useful evidence too: laboratory results are what can move these designs from predictions to facts.

To start by trying to break it, start with the limitations above — what this is, and what it is not — and then read the limitations of the designed release, which carry every one of them with the measurement behind it.