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.
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.
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
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.
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.
For reproducibility, each release page lists the genome assembly, gene annotation, model version, checkpoint, units and output definition: the natural release · the designed release.
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.
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.
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.
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.
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.
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.
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.
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
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
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.
releases/generated/pairs/*.json.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.
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.
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.
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.
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.
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.
not_a_finding. In one pancreatic beta-cell test, even the correct training description failed the marker controls.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.