Skill Tracer
Skills › Scientific Agent Skills › alphagenome › atlas.md

atlas.md

275 lines · skills/alphagenome/references/atlas.md at 5f2bc03

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1# AlphaGenome Atlas: data model, scorers, AVI, and access
2
3Reviewed 2026-09-30 against `alphagenome` 0.9.0 (released 2026-09-08, the first version
4with `alphagenome.atlas`), the Atlas technical report (Cheng, Taylor,
5Nicolaisen, Pan, Bycroft, Perino, Ward, *et al.*, "AlphaGenome Atlas: in silico
6mutagenesis of the entire human genome improves prioritization and
7interpretation of non-coding variants", 2026 preprint), and DeepMind's own
8Atlas agent skills in `google-deepmind/science-skills`. Source and local SDK checks cover the client contracts below. No authenticated
9Atlas query was run in this review; server-side catalogues and portal rendering
10remain unverified. The report now has medRxiv DOI
11[10.64898/2026.09.16.26363192](https://doi.org/10.64898/2026.09.16.26363192).

AlphaGenome Atlas: data model, scorers, AVI, and access

Reviewed 2026-09-30 against alphagenome 0.9.0 (released 2026-09-08, the first version with alphagenome.atlas), the Atlas technical report (Cheng, Taylor, Nicolaisen, Pan, Bycroft, Perino, Ward, et al., "AlphaGenome Atlas: in silico mutagenesis of the entire human genome improves prioritization and interpretation of non-coding variants", 2026 preprint), and DeepMind's own Atlas agent skills in google-deepmind/science-skills. Source and local SDK checks cover the client contracts below. No authenticated Atlas query was run in this review; server-side catalogues and portal rendering remain unverified. The report now has medRxiv DOI 10.64898/2026.09.16.26363192.

Raw lines 1 to 12
13## What is in the Atlas
15| Item | Value |
16| --- | --- |
17| Genome build | GRCh38 / hg38 only. Gene annotations: GENCODE v46. |
18| Variants | Every possible SNV at every non-`N` reference base (about 9 billion). Over 100 million observed indels (gnomAD v4.1, UK Biobank, All of Us) were scored for the paper, but the public API is currently limited to SNVs; indel expansion is promised "upon final publication". |
19| Model | The distilled AlphaGenome model, 1 Mb input centred on a 128 bp scoring window (so a variant sits within 64 bp of the centre; the paper shows this does not change scores). |
20| Per-variant content | Raw scores for every track of 19 recommended scorer configurations (about 27,000 scalars per variant, about 15,000 without the `_ACTIVE` scorers), the AVI score with its quantile, 18 SHAP feature attributions, and motif instances. |
21| Motifs | 2,601 motifs (94 main TF labels, 122 zinc-finger labels, 464 composite patterns) and about 253 billion motif instances. Browsable on the portal; bulk download promised. |
22| Size | About 1 PB. |

What is in the Atlas

ItemValue
Genome buildGRCh38 / hg38 only. Gene annotations: GENCODE v46.
VariantsEvery possible SNV at every non-N reference base (about 9 billion). Over 100 million observed indels (gnomAD v4.1, UK Biobank, All of Us) were scored for the paper, but the public API is currently limited to SNVs; indel expansion is promised "upon final publication".
ModelThe distilled AlphaGenome model, 1 Mb input centred on a 128 bp scoring window (so a variant sits within 64 bp of the centre; the paper shows this does not change scores).
Per-variant contentRaw scores for every track of 19 recommended scorer configurations (about 27,000 scalars per variant, about 15,000 without the _ACTIVE scorers), the AVI score with its quantile, 18 SHAP feature attributions, and motif instances.
Motifs2,601 motifs (94 main TF labels, 122 zinc-finger labels, 464 composite patterns) and about 253 billion motif instances. Browsable on the portal; bulk download promised.
SizeAbout 1 PB.
Raw lines 13 to 23
24### Index key semantics
26Each record is keyed by `chromosome:position:alt` on GRCh38. The REF allele is
27implied by the reference and is **not** part of the key, so:
29- a variant written with REF and ALT swapped (for example minor-allele-first
30 from a GWAS table) can produce a **lookup miss**;
31- non-reference to non-reference substitutions do not exist;
32- positions where the reference is `N` were never scored;
33- GRCh37 coordinates return wrong-but-plausible answers. Lift over first.
35The SDK sends the full variant (including REF) and returns the server variant
36in `obs["variant"]`; these helpers reject a response with a different variant
37identity. Do not assume the service independently validates REF or the assembly.
38Check REF against the reference FASTA before trusting any Atlas result
39(`genomic-coordinates` has `normalize_variant.py` and `check_contigs.py`).

Index key semantics

Each record is keyed by chromosome:position:alt on GRCh38. The REF allele is implied by the reference and is not part of the key, so:

  • a variant written with REF and ALT swapped (for example minor-allele-first from a GWAS table) can produce a lookup miss;
  • non-reference to non-reference substitutions do not exist;
  • positions where the reference is N were never scored;
  • GRCh37 coordinates return wrong-but-plausible answers. Lift over first.

The SDK sends the full variant (including REF) and returns the server variant in obs["variant"]; these helpers reject a response with a different variant identity. Do not assume the service independently validates REF or the assembly. Check REF against the reference FASTA before trusting any Atlas result (genomic-coordinates has normalize_variant.py and check_contigs.py).

Raw lines 24 to 40
Names a skill genomic-coordinates :39
41## The scorers (Table S1 of the report)
43`requested_scorers=` takes these names. Track counts are for human; the
44`_ACTIVE` names match the SDK recommended configuration keys, but the served Atlas
45catalogue was not checked with an authenticated `scorer_metadata()` call.
47| Name | Scorer class | Parameters | Biosamples | Tracks | Signed | Obs axis |
48| --- | --- | --- | --- | --- | --- | --- |
49| `ATAC` | CenterMaskScorer | width 501, DIFF_LOG2_SUM | 167 | 167 | yes | variant |
50| `DNASE` | CenterMaskScorer | width 501, DIFF_LOG2_SUM | 305 | 305 | yes | variant |
51| `CHIP_TF` | CenterMaskScorer | width 501, DIFF_LOG2_SUM | 163 | 1,617 | yes | variant |
52| `CHIP_HISTONE` | CenterMaskScorer | width 2001, DIFF_LOG2_SUM | 219 | 1,116 | yes | variant |
53| `CAGE` | CenterMaskScorer | width 501, DIFF_LOG2_SUM | 264 | 546 | yes | variant |
54| `PROCAP` | CenterMaskScorer | width 501, DIFF_LOG2_SUM | 6 | 12 | yes | variant |
55| `RNA_SEQ` | GeneMaskLFCScorer | natural-log fold change over exons | 285 | 371 | yes | variant x gene |
56| `POLYADENYLATION` | PolyadenylationScorer | max log-fold change of isoform ratio | 285 | 371 | no | variant x gene |
57| `SPLICE_SITES` | GeneMaskSplicingScorer | SPLICE_SITES, width None | - | 2 (donor, acceptor) | no | variant x gene |
58| `SPLICE_SITE_USAGE` | GeneMaskSplicingScorer | SPLICE_SITE_USAGE, width None | 282 | 367 | no | variant x gene |
59| `SPLICE_JUNCTIONS` | SpliceJunctionScorer | | 282 | 367 | no | variant x junction |
60| `CONTACT_MAPS` | ContactMapScorer | | 12 | 28 | no | variant |
61| `*_ACTIVE` (ATAC, DNASE, CHIP_TF, CHIP_HISTONE, CAGE, PROCAP, RNA_SEQ) | same widths, ACTIVE_SUM / GeneMaskActiveScorer | absolute activity of the stronger allele, not a difference | as above | as above | no | as above |
62| `AVI_SCORE` | composite | one score per variant | - | 1 | no | variant |
63| `AVI_SCORE_FEATURE_IMPORTANCE` | SHAP | 18 attribution values | - | 18 | yes | variant |
65"Signed" raw scorers can go negative (ALT lowers the signal). Their calibrated
66quantiles are on `[-1, 1]` (CDF `p` mapped to `2*p-1`); unsigned scorers
67use `[0, 1]`. Use `abs(quantile_score)` for the CLI magnitude filter.
68The AVI CDF described below is unsigned and has its own background. These
69semantics follow the official scoring FAQ; authenticated Atlas quantile values
70were not checked in this review. For unsigned effect scorers the direction is
71not meaningful; `_ACTIVE` ranks activity rather than an allelic change.
73Table S1 totals 9,440 scorer-track entries, including repeated tracks for
74active and difference scorers; it is not 9,440 distinct model outputs. `python scripts/atlas_query.py tracks
75--scorer RNA_SEQ --query liver` shows the metadata for any of them.

The scorers (Table S1 of the report)

requested_scorers= takes these names. Track counts are for human; the _ACTIVE names match the SDK recommended configuration keys, but the served Atlas catalogue was not checked with an authenticated scorer_metadata() call.

NameScorer classParametersBiosamplesTracksSignedObs axis
ATACCenterMaskScorerwidth 501, DIFF_LOG2_SUM167167yesvariant
DNASECenterMaskScorerwidth 501, DIFF_LOG2_SUM305305yesvariant
CHIP_TFCenterMaskScorerwidth 501, DIFF_LOG2_SUM1631,617yesvariant
CHIP_HISTONECenterMaskScorerwidth 2001, DIFF_LOG2_SUM2191,116yesvariant
CAGECenterMaskScorerwidth 501, DIFF_LOG2_SUM264546yesvariant
PROCAPCenterMaskScorerwidth 501, DIFF_LOG2_SUM612yesvariant
RNA_SEQGeneMaskLFCScorernatural-log fold change over exons285371yesvariant x gene
POLYADENYLATIONPolyadenylationScorermax log-fold change of isoform ratio285371novariant x gene
SPLICE_SITESGeneMaskSplicingScorerSPLICE_SITES, width None-2 (donor, acceptor)novariant x gene
SPLICE_SITE_USAGEGeneMaskSplicingScorerSPLICE_SITE_USAGE, width None282367novariant x gene
SPLICE_JUNCTIONSSpliceJunctionScorer282367novariant x junction
CONTACT_MAPSContactMapScorer1228novariant
*_ACTIVE (ATAC, DNASE, CHIP_TF, CHIP_HISTONE, CAGE, PROCAP, RNA_SEQ)same widths, ACTIVE_SUM / GeneMaskActiveScorerabsolute activity of the stronger allele, not a differenceas aboveas abovenoas above
AVI_SCOREcompositeone score per variant-1novariant
AVI_SCORE_FEATURE_IMPORTANCESHAP18 attribution values-18yesvariant

"Signed" raw scorers can go negative (ALT lowers the signal). Their calibrated quantiles are on [-1, 1] (CDF p mapped to 2*p-1); unsigned scorers use [0, 1]. Use abs(quantile_score) for the CLI magnitude filter. The AVI CDF described below is unsigned and has its own background. These semantics follow the official scoring FAQ; authenticated Atlas quantile values were not checked in this review. For unsigned effect scorers the direction is not meaningful; _ACTIVE ranks activity rather than an allelic change.

Table S1 totals 9,440 scorer-track entries, including repeated tracks for active and difference scorers; it is not 9,440 distinct model outputs. python scripts/atlas_query.py tracks --scorer RNA_SEQ --query liver shows the metadata for any of them.

Raw lines 41 to 76
Runs code python scripts/atlas_query.py :74
77## AlphaGenome Variant Impact (AVI)
79AVI is a small neural network trained on **proxy labels**: gnomAD v4.1 variants
80with a group-maximum filtering allele frequency above 0.001 are "proxy benign"
81(about 2e7), below 0.001 "proxy impactful" (about 1e8). It therefore learns to
82rank variants by how strongly negative selection appears to act on them, using
8318 features:
85| Group | Features (`var['name']` keys) |
86| --- | --- |
87| AlphaGenome, max absolute effect across all tracks and genes | `MAX_ABS_ATAC`, `MAX_ABS_DNASE`, `MAX_ABS_CHIP_TF`, `MAX_ABS_CHIP_HISTONE`, `MAX_ABS_CAGE`, `MAX_ABS_PROCAP`, `MAX_ABS_RNA_SEQ`, `MAX_ABS_POLYADENYLATION`, `MAX_ABS_CONTACT_MAPS` |
88| AlphaGenome splicing (sites + usage + junctions/5, each max over genes) | `MERGED_SPLICING` |
89| Protein | `ALPHAMISSENSE` (0 when there is no AlphaMissense prediction) |
90| Conservation | `CACTUS_241_WAY` (Zoonomia phyloP, range -20 to 8.9), `PHASTCONS_470_WAY` |
91| VEP loss-of-function indicators | `PROTEIN_TERMINATION` (stop gained or frameshift), `START_LOST`, `STOP_LOST` |
92| Indel type | `IS_INSERTION`, `IS_DELETION` |
94The 18 SHAP values (expected-gradients approximation, reference = all features
95zero) **sum to the raw AVI score**, so the attribution tells you which modality
96drives a high score: splicing, a TF-binding change, conservation alone, or a
97coding consequence via AlphaMissense.

AlphaGenome Variant Impact (AVI)

AVI is a small neural network trained on proxy labels: gnomAD v4.1 variants with a group-maximum filtering allele frequency above 0.001 are "proxy benign" (about 2e7), below 0.001 "proxy impactful" (about 1e8). It therefore learns to rank variants by how strongly negative selection appears to act on them, using 18 features:

GroupFeatures (var['name'] keys)
AlphaGenome, max absolute effect across all tracks and genesMAX_ABS_ATAC, MAX_ABS_DNASE, MAX_ABS_CHIP_TF, MAX_ABS_CHIP_HISTONE, MAX_ABS_CAGE, MAX_ABS_PROCAP, MAX_ABS_RNA_SEQ, MAX_ABS_POLYADENYLATION, MAX_ABS_CONTACT_MAPS
AlphaGenome splicing (sites + usage + junctions/5, each max over genes)MERGED_SPLICING
ProteinALPHAMISSENSE (0 when there is no AlphaMissense prediction)
ConservationCACTUS_241_WAY (Zoonomia phyloP, range -20 to 8.9), PHASTCONS_470_WAY
VEP loss-of-function indicatorsPROTEIN_TERMINATION (stop gained or frameshift), START_LOST, STOP_LOST
Indel typeIS_INSERTION, IS_DELETION

The 18 SHAP values (expected-gradients approximation, reference = all features zero) sum to the raw AVI score, so the attribution tells you which modality drives a high score: splicing, a TF-binding change, conservation alone, or a coding consequence via AlphaMissense.

Raw lines 77 to 98
99### Raw, quantile, Phred
101The Atlas returns the raw score in `X` and a **cumulative quantile** against all
102genome-wide SNVs in `layers['quantiles']`. Convert as DeepMind's tools do:
104```text
105tail = 1 - cdf_quantile # fraction of SNVs scoring at least this high
106phred = -10 * log10(tail) # 10 = top 10 %, 20 = top 1 %, 30 = top 0.1 %, 40 = top 0.01 %
107top % = 10 ** (-phred / 10) * 100
108```
110Indel Phred scores are placed on the SNV quantile curve. The report's guidance:
111AVI is applicable to coding and non-coding variants, but **use region- or
112application-aware thresholds and prefer ranking over hard cut-offs**. Pathogenic
113regulatory variants land in lower AVI bins than pathogenic protein-truncating or
114splice-motif variants, so one genome-wide cut-off under-calls regulatory hits.

Raw, quantile, Phred

The Atlas returns the raw score in X and a cumulative quantile against all genome-wide SNVs in layers['quantiles']. Convert as DeepMind's tools do:

tail  = 1 - cdf_quantile            # fraction of SNVs scoring at least this high
phred = -10 * log10(tail)           # 10 = top 10 %, 20 = top 1 %, 30 = top 0.1 %, 40 = top 0.01 %
top % = 10 ** (-phred / 10) * 100

Indel Phred scores are placed on the SNV quantile curve. The report's guidance: AVI is applicable to coding and non-coding variants, but use region- or application-aware thresholds and prefer ranking over hard cut-offs. Pathogenic regulatory variants land in lower AVI bins than pathogenic protein-truncating or splice-motif variants, so one genome-wide cut-off under-calls regulatory hits.

Raw lines 99 to 115
116### Benchmarks and case studies (report, for context only)
118State-of-the-art on ClinVar non-coding, saturation genome editing, and TraitGym
119style benchmarks against CADD, GPN-Star, and AlphaMissense after removing
120training-set overlap; resolution of an epileptic-encephalopathy case in the
121GREGoR cohort via a *DNM1* variant missed by prior tools; a 22 % increase in
122detectable rare non-coding associations for circulating proteins in UK Biobank.

Benchmarks and case studies (report, for context only)

State-of-the-art on ClinVar non-coding, saturation genome editing, and TraitGym style benchmarks against CADD, GPN-Star, and AlphaMissense after removing training-set overlap; resolution of an epileptic-encephalopathy case in the GREGoR cohort via a DNM1 variant missed by prior tools; a 22 % increase in detectable rare non-coding associations for circulating proteins in UK Biobank.

Raw lines 116 to 123
124## Client API (`alphagenome.atlas.atlas`)
126```python
127from alphagenome.atlas import atlas
128from alphagenome.data import genome
130client = atlas.create(api_key, timeout=30) # gRPC to gdmscience.googleapis.com:443
132client.scorer_metadata() # -> {name: ScorerMetadata(name, is_signed, track_metadata: DataFrame)}
134client.query_variant(
135 genome.Variant.from_str("chr22:36201698:A>C"), # 1-based position
136 requested_scorers=["AVI_SCORE", "AVI_SCORE_FEATURE_IMPORTANCE", "RNA_SEQ"],
137 ontology_terms=None, # e.g. ["UBERON:0001157", "CL:0000084"]; strings or OntologyTerm
138 gene_ids=None, # Ensembl IDs, gene-centric scorers only
139 gene_names=None, # symbols, gene-centric scorers only
140) # -> {scorer_name: AnnData}
142client.query_variants([...], requested_scorers=[...], progress_bar=True, max_workers=10)
143client.query_interval(genome.Interval("chr11", 5225726, 5226575), requested_scorers=[...])
144```
146- `genome.Interval` is **0-based half-open**; `genome.Variant.position` is
147 **1-based**. `Variant.from_str` also accepts gnomAD (`22-1024-A-C`), GTEx
148 (`chr22_1024_A_C_b38`), and Open Targets spellings when the matching
149 `variant_format=genome.VariantFormat...` is explicitly passed; the SDK does
150 not autodetect formats (the helper scripts do).
151- `query_interval` splits the window into 32 bp chunks, walks the pagination,
152 and returns stored SNVs (up to 3 per non-`N` base). A 1 kb window can
153 yield 3,000 variants; latency depends on scorers, filters and service load.
154 DeepMind's tool refuses windows above 1,000 bp by
155 default, and so does `scripts/atlas_query.py` (`--max-window`).
156- `query_variants` re-raises a failed future; other submitted calls may already
157 have run. Results arrive in completion order, not input order; `scripts/atlas_query.py`
158 makes separate variant requests so a single miss becomes an `error` cell.
159- Each AnnData: `X` = raw scores (obs x tracks, `float32`), `obs['variant']` =
160 `genome.Variant`, plus `gene_id`, `gene_name`, `strand`, `junction_Start`,
161 `junction_End` for gene-centric scorers; `var` = track metadata (`name`,
162 `strand`, `ontology_curie`, `biosample_name`, `biosample_type`, assay title,
163 `gtex_tissue`, `transcription_factor`, `histone_mark` where applicable);
164 `layers['quantiles']` when the server sent calibrated quantiles.
165- `AVI_SCORE`: `X` shape (n, 1). `AVI_SCORE_FEATURE_IMPORTANCE`: `X` shape
166 (n, 18), `var['name']` = the feature keys above.
167- An `ontology_terms` filter is ignored for scorers whose tracks have no
168 ontology metadata (the filter string is built that way), so `SPLICE_SITES`
169 and the AVI scorers still come back.

Client API (alphagenome.atlas.atlas)

from alphagenome.atlas import atlas
from alphagenome.data import genome

client = atlas.create(api_key, timeout=30)          # gRPC to gdmscience.googleapis.com:443

client.scorer_metadata()   # -> {name: ScorerMetadata(name, is_signed, track_metadata: DataFrame)}

client.query_variant(
    genome.Variant.from_str("chr22:36201698:A>C"),  # 1-based position
    requested_scorers=["AVI_SCORE", "AVI_SCORE_FEATURE_IMPORTANCE", "RNA_SEQ"],
    ontology_terms=None,      # e.g. ["UBERON:0001157", "CL:0000084"]; strings or OntologyTerm
    gene_ids=None,            # Ensembl IDs, gene-centric scorers only
    gene_names=None,          # symbols, gene-centric scorers only
)                              # -> {scorer_name: AnnData}

client.query_variants([...], requested_scorers=[...], progress_bar=True, max_workers=10)
client.query_interval(genome.Interval("chr11", 5225726, 5226575), requested_scorers=[...])
  • genome.Interval is 0-based half-open; genome.Variant.position is 1-based. Variant.from_str also accepts gnomAD (22-1024-A-C), GTEx (chr22_1024_A_C_b38), and Open Targets spellings when the matching variant_format=genome.VariantFormat... is explicitly passed; the SDK does not autodetect formats (the helper scripts do).
  • query_interval splits the window into 32 bp chunks, walks the pagination, and returns stored SNVs (up to 3 per non-N base). A 1 kb window can yield 3,000 variants; latency depends on scorers, filters and service load. DeepMind's tool refuses windows above 1,000 bp by default, and so does scripts/atlas_query.py (--max-window).
  • query_variants re-raises a failed future; other submitted calls may already have run. Results arrive in completion order, not input order; scripts/atlas_query.py makes separate variant requests so a single miss becomes an error cell.
  • Each AnnData: X = raw scores (obs x tracks, float32), obs['variant'] = genome.Variant, plus gene_id, gene_name, strand, junction_Start, junction_End for gene-centric scorers; var = track metadata (name, strand, ontology_curie, biosample_name, biosample_type, assay title, gtex_tissue, transcription_factor, histone_mark where applicable); layers['quantiles'] when the server sent calibrated quantiles.
  • AVI_SCORE: X shape (n, 1). AVI_SCORE_FEATURE_IMPORTANCE: X shape (n, 18), var['name'] = the feature keys above.
  • An ontology_terms filter is ignored for scorers whose tracks have no ontology metadata (the filter string is built that way), so SPLICE_SITES and the AVI scorers still come back.
Raw lines 124 to 170
Runs code scripts/atlas_query.py :155
171### Transport and pagination
173`atlas.create` uses TLS gRPC, service
174`google.gdm.gdmscience.alphagenome.atlas.v1main.AtlasService`, with
175`x-goog-api-key` authentication metadata. This SDK has no REST URL or JSON
176request body to construct. `query_variant` maps to `GetDenseVariantScores`
177(full variant, human organism, filter string), `query_interval` maps to
178`ListDenseVariantScores` (interval, human organism, filter, page token), and
179`scorer_metadata` maps to `ListVariantScoresMetadata`. The list response is
180`variant_scores` plus `next_page_token`; the SDK follows tokens until empty
181within each 32 bp chunk. Do not infer completion from a short page.
182Gene ID/name filters are ORed together, then ANDed with scorer/ontology
183filters; they can remove non-gene scorer results. Return order from parallel
184queries is unspecified.
186`create(timeout=30)` is only the wait for channel readiness. The Atlas
187service config separately sets a 60 s deadline and up to five attempts,
188with 1 s initial backoff, multiplier 2, maximum backoff 60 s. It retries
189`RESOURCE_EXHAUSTED`, `UNAVAILABLE`, and `DEADLINE_EXCEEDED`; this does not
190guarantee the whole batch completes in 30 or 60 seconds.

Transport and pagination

atlas.create uses TLS gRPC, service google.gdm.gdmscience.alphagenome.atlas.v1main.AtlasService, with x-goog-api-key authentication metadata. This SDK has no REST URL or JSON request body to construct. query_variant maps to GetDenseVariantScores (full variant, human organism, filter string), query_interval maps to ListDenseVariantScores (interval, human organism, filter, page token), and scorer_metadata maps to ListVariantScoresMetadata. The list response is variant_scores plus next_page_token; the SDK follows tokens until empty within each 32 bp chunk. Do not infer completion from a short page. Gene ID/name filters are ORed together, then ANDed with scorer/ontology filters; they can remove non-gene scorer results. Return order from parallel queries is unspecified.

create(timeout=30) is only the wait for channel readiness. The Atlas service config separately sets a 60 s deadline and up to five attempts, with 1 s initial backoff, multiplier 2, maximum backoff 60 s. It retries RESOURCE_EXHAUSTED, UNAVAILABLE, and DEADLINE_EXCEEDED; this does not guarantee the whole batch completes in 30 or 60 seconds.

Raw lines 171 to 191
192### Errors
194`atlas.handle_rpc_error` maps gRPC status to Python exceptions:
196| gRPC status | Python | Typical cause |
197| --- | --- | --- |
198| `INVALID_ARGUMENT`, `NOT_FOUND` | `ValueError` | bad key ("API key not valid"), invalid request or missing variant; exact message is service-defined |
199| `UNAUTHENTICATED`, `PERMISSION_DENIED` | `PermissionError` | key without Atlas access, terms not accepted |
200| `DEADLINE_EXCEEDED` | `TimeoutError` | 60 s per-call timeout |
201| `OUT_OF_RANGE` | `IndexError` | interval past the contig end |
202| `RESOURCE_EXHAUSTED`, `UNAVAILABLE`, `DEADLINE_EXCEEDED` | retried by the channel: 5 attempts, exponential back-off 1 s to 60 s | quota or transient outage |
204Invalid-key errors can be `ValueError` (`INVALID_ARGUMENT`) or
205`PermissionError` (`UNAUTHENTICATED`); inspect the status/message. No
206current authenticated or invalid-key probe was run in this review.

Errors

atlas.handle_rpc_error maps gRPC status to Python exceptions:

gRPC statusPythonTypical cause
INVALID_ARGUMENT, NOT_FOUNDValueErrorbad key ("API key not valid"), invalid request or missing variant; exact message is service-defined
UNAUTHENTICATED, PERMISSION_DENIEDPermissionErrorkey without Atlas access, terms not accepted
DEADLINE_EXCEEDEDTimeoutError60 s per-call timeout
OUT_OF_RANGEIndexErrorinterval past the contig end
RESOURCE_EXHAUSTED, UNAVAILABLE, DEADLINE_EXCEEDEDretried by the channel: 5 attempts, exponential back-off 1 s to 60 squota or transient outage

Invalid-key errors can be ValueError (INVALID_ARGUMENT) or PermissionError (UNAUTHENTICATED); inspect the status/message. No current authenticated or invalid-key probe was run in this review.

Raw lines 192 to 207
208## Access tiers and terms
210From the report's Data Availability section and the AlphaGenome terms:
212| Data | Access | Route |
213| --- | --- | --- |
214| AVI scores, all hg38 SNVs | **permissive** licence, commercial use allowed | static download (Tabix) at https://alphagenome.google/downloads |
215| AVI scores | non-commercial | API (`AVI_SCORE`) |
216| AVI feature attributions | non-commercial | static download (Tabix) and API (`AVI_SCORE_FEATURE_IMPORTANCE`) |
217| Splicing scores | non-commercial | static download (Tabix) and API |
218| All other raw Atlas track scores | non-commercial | **API only** |
219| Motif compendium and instances | browse on the portal; bulk download promised | portal |
220| Commercial Atlas access | announced as coming soon; base-model commercial access already available | [Google Cloud Model Garden](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/open-models/alphagenome) |
222These API outputs are for research and theoretical modelling, may not be
223used to train other machine-learning models, and are not for diagnostic
224procedures or medical decision-making. The website is free for non-commercial
225use. Query rates are demand-dependent and unpublished; the docs say the Atlas
226"will typically have a larger query rate" than on-demand model predictions.

Access tiers and terms

From the report's Data Availability section and the AlphaGenome terms:

DataAccessRoute
AVI scores, all hg38 SNVspermissive licence, commercial use allowedstatic download (Tabix) at https://alphagenome.google/downloads
AVI scoresnon-commercialAPI (AVI_SCORE)
AVI feature attributionsnon-commercialstatic download (Tabix) and API (AVI_SCORE_FEATURE_IMPORTANCE)
Splicing scoresnon-commercialstatic download (Tabix) and API
All other raw Atlas track scoresnon-commercialAPI only
Motif compendium and instancesbrowse on the portal; bulk download promisedportal
Commercial Atlas accessannounced as coming soon; base-model commercial access already availableGoogle Cloud Model Garden

These API outputs are for research and theoretical modelling, may not be used to train other machine-learning models, and are not for diagnostic procedures or medical decision-making. The website is free for non-commercial use. Query rates are demand-dependent and unpublished; the docs say the Atlas "will typically have a larger query rate" than on-demand model predictions.

Raw lines 208 to 227
228## The portal
230`https://deepmind.google.com/science/alphagenome/atlas` (also reachable as
231`https://alphagenome.google/atlas`). Query parameters, from DeepMind's link
232builder:
234| Parameter | Meaning |
235| --- | --- |
236| `q` | variant `chr:pos:ref>alt` (1-based), interval `chr:start-end` (1-based closed), gene symbol, or Ensembl gene ID. **rsIDs are not accepted.** |
237| `m` | view: `variant`, `locus`, `entity` (gene), `motifs` |
238| `i` | viewport interval, needed before motif instances render |
239| `f` | filters: `BIOSAMPLE_NAME:K562`, `BIOSAMPLE_TYPE:...` (AND), `SCORER_MODALITY:RNA-seq`, `ASSAY_TRANSCRIPTOR_FACTOR:GATA1`, `ASSAY_HISTONE_MARK:H3K27ac` (OR within the assay group), `GENE_NAME:HBB` |
240| `lItems` | layout: `avi`, `section:RNA_SEQ`, `section:DNASE`, `section:CHIP_TF`, ..., `pinned:<track key>` |
241| `scores`, `md`, `tpRenames`, `tpLegendTitle` | the `/atlas/track-predictions` REF-vs-ALT comparison page |
243Because RNA-seq and DNase tracks carry no TF code, a filter made only of TF
244predicates hides them; add `SCORER_MODALITY:RNA-seq,SCORER_MODALITY:DNase`
245alongside (`scripts/atlas_link.py` does this automatically).

The portal

https://deepmind.google.com/science/alphagenome/atlas (also reachable as https://alphagenome.google/atlas). Query parameters, from DeepMind's link builder:

ParameterMeaning
qvariant chr:pos:ref>alt (1-based), interval chr:start-end (1-based closed), gene symbol, or Ensembl gene ID. rsIDs are not accepted.
mview: variant, locus, entity (gene), motifs
iviewport interval, needed before motif instances render
ffilters: BIOSAMPLE_NAME:K562, BIOSAMPLE_TYPE:... (AND), SCORER_MODALITY:RNA-seq, ASSAY_TRANSCRIPTOR_FACTOR:GATA1, ASSAY_HISTONE_MARK:H3K27ac (OR within the assay group), GENE_NAME:HBB
lItemslayout: avi, section:RNA_SEQ, section:DNASE, section:CHIP_TF, ..., pinned:<track key>
scores, md, tpRenames, tpLegendTitlethe /atlas/track-predictions REF-vs-ALT comparison page

Because RNA-seq and DNase tracks carry no TF code, a filter made only of TF predicates hides them; add SCORER_MODALITY:RNA-seq,SCORER_MODALITY:DNase alongside (scripts/atlas_link.py does this automatically).

Raw lines 228 to 246
Runs code scripts/atlas_link.py :245
247## Bulk files and annotations
249- GENCODE v46 GTF as Feather, the annotation behind both Atlas and model gene
250 scores: `https://storage.googleapis.com/alphagenome/reference/gencode/hg38/gencode.v46.annotation.gtf.gz.feather`
251 (about 318 MB, roughly 4 GB RAM in pandas; column names are capitalised:
252 `Feature`, `Start`, `End`, `Strand`). Load with `pd.read_feather` and use
253 `alphagenome.data.gene_annotation` helpers (`filter_to_mane_select_transcript`,
254 `get_gene_interval`, `extract_tss`) so gene models match the scores.
255- AVI Tabix downloads: https://alphagenome.google/downloads (public page resolves
256 to a sign-in shell; individual files and licence acceptance were not exercised).

Bulk files and annotations

  • GENCODE v46 GTF as Feather, the annotation behind both Atlas and model gene scores: https://storage.googleapis.com/alphagenome/reference/gencode/hg38/gencode.v46.annotation.gtf.gz.feather (about 318 MB, roughly 4 GB RAM in pandas; column names are capitalised: Feature, Start, End, Strand). Load with pd.read_feather and use alphagenome.data.gene_annotation helpers (filter_to_mane_select_transcript, get_gene_interval, extract_tss) so gene models match the scores.
  • AVI Tabix downloads: https://alphagenome.google/downloads (public page resolves to a sign-in shell; individual files and licence acceptance were not exercised).
Raw lines 247 to 257
258## Citing
260Cite both the Atlas report (above) and the model paper: Avsec Ž. *et al.*,
261"Advancing regulatory variant effect prediction with AlphaGenome", *Nature*
262649, 1206-1218 (2026), doi:10.1038/s41586-025-10014-0. Software:
263https://github.com/google-deepmind/alphagenome (Apache-2.0 client; the model
264weights and outputs carry separate terms).

Citing

Cite both the Atlas report (above) and the model paper: Avsec Ž. et al., "Advancing regulatory variant effect prediction with AlphaGenome", Nature 649, 1206-1218 (2026), doi:10.1038/s41586-025-10014-0. Software: https://github.com/google-deepmind/alphagenome (Apache-2.0 client; the model weights and outputs carry separate terms).

Raw lines 258 to 265
266## Official contract sources
268- [Released client](https://pypi.org/project/alphagenome/0.9.0/) and
269 [Atlas SDK](https://github.com/google-deepmind/alphagenome/blob/main/src/alphagenome/atlas/atlas.py).
270- [Atlas protobuf schema](https://github.com/google-deepmind/alphagenome/blob/main/src/alphagenome/protos/atlas_service.proto),
271 [filter builder](https://github.com/google-deepmind/alphagenome/blob/main/src/alphagenome/atlas/atlas_utils.py),
272 [gRPC retry policy](https://github.com/google-deepmind/alphagenome/blob/main/src/alphagenome/protos/grpc_service_config.json).
273- [Official portal link builder](https://github.com/google-deepmind/science-skills/tree/main/skills/alphagenome_atlas_website_links).
274- [Scoring/terms FAQ](https://www.alphagenomedocs.com/faqs.html) and
275 [Atlas release announcement](https://deepmind.google/blog/alphagenome-atlas-a-predictive-map-of-every-possible-dna-letter-change-in-the-human-genome/).