> For the complete documentation index, see [llms.txt](https://help.connected.illumina.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.connected.illumina.com/annotation/v4.0/data-sources/promoterai.md).

# PromoterAI

### Overview

PromoterAI is an AI annotation model developed by the Illumina Artificial Intelligence Lab to predict impact of variants in promoter regions.

The model evaluates DNA sequence context around a promoter variant and estimates whether the variant is likely to increase, decrease, or have no effect on gene expression.

Promoter variants are estimated to account for approximately 6% of genetic factors underlying rare disease, highlighting the importance of analyzing non-coding regulatory regions alongside coding variants.

DRAGEN Annotation uses PromoterAI 1.1.1 for GRCh38 and PromoterAI 1.1 for GRCh37.

For more details, refer to:

{% hint style="info" %}
**Publication**

Jaganathan, et al. Predicting expression-altering promoter mutations with deep learning. *Science* (2025). <https://doi.org/10.1126/science.ads7373>
{% endhint %}

{% hint style="warning" %}
**Professional data source**

This data source requires a Professional license. Contact `annotation_support@illumina.com` to request access.
{% endhint %}

## PromoterAI 1.1.1 (GRCh38)

PromoterAI 1.1.1 combines SNV and indel score files into one supplementary annotation file (`.esa`) that DRAGEN Annotation loads. See [SAUtils](/annotation/v4.0/utilities/sautils.md) for how supplementary files are produced.

### Parsing

#### TSV File

The SNV and indel files share 10 columns. The last column is named `promoterAI` in the SNV file and `score` in the indel file. Both names are accepted.

The snippet below includes SNVs, a deletion (`GACTC`/`G`), and an insertion (`C`/`CA`) from the GRCh38 files:

```scss
chrom	pos	ref	alt	gene	gene_id	transcript_id	strand	tss_pos	promoterAI
chr1	64918	T	A	OR4F5	ENSG00000186092	ENST00000641515.2	1	65418	-0.0024
chr1	64918	T	C	OR4F5	ENSG00000186092	ENST00000641515.2	1	65418	-0.0076
chr1	65009	GACTC	G	OR4F5	ENSG00000186092	ENST00000641515.2	1	65418	-0.0004999144999999
chr1	65037	C	CA	OR4F5	ENSG00000186092	ENST00000641515.2	1	65418	0.01529770165
```

The header is required. DRAGEN Annotation reads these columns:

* `chrom`
* `pos`
* `ref`
* `alt`
* `gene_id`
* `transcript_id`
* `strand`
* `tss_pos`
* `promoterAI` / `score`

This column is not used:

* `gene`

`distanceFromTss` is not a source column. DRAGEN Annotation computes it from `strand`, the variant position, and `tss_pos`.

#### Allele normalization

Indel alleles are VCF-style: padded with an anchor base. They are trimmed and left-aligned against the reference so they match alleles in the query VCF. SNVs are unchanged in practice; this mainly affects indels.

`distanceFromTss` still uses the original TSV position, not the position after left-alignment.

### JSON output

```json
"promoterAI": [
    {
      "strand": 1,
      "distanceFromTss": -292,
      "geneId": "ENSG00000274391",
      "transcriptId": "ENST00000618007.5",
      "score": 0.032
    }
]
```

<table><thead><tr><th>Field</th><th width="146.453125">Type</th><th>Notes</th></tr></thead><tbody><tr><td>strand</td><td>int</td><td>Strand location of the transcript</td></tr><tr><td>distanceFromTss</td><td>int</td><td>Number of nucleotides calculated from TSS of the corresponding transcript</td></tr><tr><td>geneId</td><td>string</td><td>Gene ID</td></tr><tr><td>transcriptId</td><td>string</td><td>Transcript ID (Ensembl)</td></tr><tr><td>score</td><td>decimal</td><td>Calculated PromoterAI score</td></tr></tbody></table>

{% hint style="info" %}
**Transcript and gene IDs from PromoterAI**

DRAGEN Annotation uses its own transcript and gene cache data when reporting transcript annotations. These IDs can differ from the IDs reported directly by PromoterAI, which is based on GENCODE Release 39. As a result, transcript IDs and gene IDs can differ between the source data and the final annotation output.
{% endhint %}

## PromoterAI 1.1 (GRCh37)

GRCh37 uses PromoterAI 1.1, which includes SNVs only.

The SNV TSV uses the same 10-column layout as GRCh38 (`chrom`, `pos`, `ref`, `alt`, `gene`, `gene_id`, `transcript_id`, `strand`, `tss_pos`, `promoterAI`). DRAGEN Annotation reads the same columns listed under [PromoterAI 1.1.1 (GRCh38)](#promoterai-111-grch38). JSON output uses the same schema.

## Interpreting scores

PromoterAI scores range from `-1` to `1`.

* A positive score suggests increased expression of the target gene.
* A negative score suggests decreased expression of the target gene.
* Scores between `-0.05` and `0.05` suggest no meaningful effect on target gene expression.

## Resources

* [PromoterAI GitHub](https://github.com/Illumina/PromoterAI)
* [GENCODE Release 39](https://www.gencodegenes.org/human/release_39.html)
* [Ensembl release 105](https://may2021.archive.ensembl.org/index.html)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.connected.illumina.com/annotation/v4.0/data-sources/promoterai.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
