AlphaGenome Variant Impact (AVI) Analysis
Score and prioritize genetic variants using AlphaGenome Variant Impact (AVI)
models via scripts/alphagenome_atlas_avi.py.
[!IMPORTANT] Research Use Only & Clinical Safety Rules: The AlphaGenome
AVI Skill and the underlying AlphaGenome model/Atlas are strictly research
tools. Access to outputs requires an AlphaGenome API key subject to terms of
service prohibiting clinical use.
- No Medical Advice or Clinical Diagnosis: You MUST NOT provide
medical advice, clinical diagnoses, disease management strategies, or
treatment recommendations based on outputs from this skill or the
AlphaGenome Atlas.
- Strict Molecular & Functional Framing: A high AVI score reflects
predicted molecular/functional impact (e.g., disruption of splicing,
alteration of transcription factor binding, chromatin accessibility
changes, or coding consequences). Frame all findings in terms of molecular
mechanisms and biological annotations—never as clinical diagnoses or
medical conclusions.
- No Diagnostic Leaps: Never extrapolate high functional impact to
clinical disease causation, penetrance, or patient prognosis. If a user
asks a clinical or diagnostic question, explicitly clarify that
AlphaGenome is a research tool and restrict your answer to the predicted
molecular and functional effects.
[!IMPORTANT] Always Use AlphaGenome GENCODE v46 GTF
(scripts/alphagenome_atlas_avi.py gtf) for Gene Annotations: When
retrieving gene models, transcript IDs, exon coordinates, CDS/UTR regions, or
splice junction donor/acceptor boundaries, always use the built-in
scripts/alphagenome_atlas_avi.py gtf command. Do NOT query external
sources (e.g., Ensembl REST API, UCSC, external GTF databases, or NCBI) for
gene annotations or transcript coordinates. This ensures that the annotations
match the scores and website.
Prerequisites
Run scripts/alphagenome_atlas_avi.py using uv run:
# Display CLI help:
uv run scripts/alphagenome_atlas_avi.py --help
[!TIP] Agent & Programmatic Execution Format: When invoking the CLI in
agent workflows, prefer --format json or direct file export (-o <file>)
for deterministic, structured parsing rather than extracting fields from
stdout markdown tables.
1. Query Variants (query)
Query single or multiple variants in 1-based chr:pos:ref>alt format to inspect
scores and the 18 biological feature attribution weights:
# Query single variant with basic feature importances (stdout JSON preview):
uv run scripts/alphagenome_atlas_avi.py query "chr9:128225994:G>A" --format json
# Query variant with exact underlying Atlas track indices, biosamples, and target genes:
uv run scripts/alphagenome_atlas_avi.py query "chr9:128225994:G>A" --include_track_info --format json
# Query multiple variants and export full track info to a file (prevents stdout overflow):
uv run scripts/alphagenome_atlas_avi.py query "chr9:128225994:G>A" "chr22:36201698:A>C" \
--include_track_info --format json -o query_results.json
- Output Size & Redirection: Single variant table/JSON queries are compact
(~1.0–1.5 KB). When querying $>3$ variants or passing
--include_track_info --format json (which generates ~3.9 KB per variant), always export
directly to a file using -o <file.json> or -o <file.tsv> to avoid
exceeding context window limits.
- Typical Runtime:
0.5–1.0 s per variant (12–15 s total including
environment startup). Single calls with $>100$ variants take $>1$ minute.
2. Annotate & Rank Variant Files (annotate)
Annotate a VCF (or CSV/TSV/Parquet) in standard Ensembl VEP CSQ format:
uv run scripts/alphagenome_atlas_avi.py annotate \
--input test_data/example_variants.vcf \
--output annotated_variants.vcf \
--top_k 20 \
--min_phred 15.0 \
--top_output top_variants.json
- Output Size & Redirection:
annotate streams the full callset directly
to disk via --output (.vcf, .vcf.gz, .parquet, .tsv, .csv).
Stdout displays a bounded summary (top candidate table + top 3 modality
breakdowns, ~4.0–5.5 KB). Use --top_output <file.json> when downstream
tools need machine-readable top candidate data.
- Typical Runtime & Callset Scaling: Throughput is ~10 variants/s
(default) and ~5 variants/s (with track info). Small callsets ($\le 100$
variants) take ~15 s. Callsets $\ge 500$ variants execute silently for $>1$
minute (e.g., 1,000 variants take ~2–3 min; 10,000 variants take ~20 min).
3. Saturation Mutagenesis Window Scan (region)
Scan a 1-based closed genomic window (chr:start-end) to score all possible
single nucleotide substitutions ($3 \times N$ variants for an $N$-bp window):
uv run scripts/alphagenome_atlas_avi.py region \
--region chr9:128225990-128226000 \
--min_phred 15.0 \
--top_k 20 \
--output region_hotspots.tsv
- Output Size & Redirection: Scanning a 100 bp window produces 300 SNVs
(
42 KB TSV / ~105 KB JSON), while a 1,000 bp window produces 3,000 SNVs
(421 KB TSV / ~1.06 MB JSON). Always specify --output <file.tsv|parquet> to save the complete dataset; stdout will only show a
top-20 candidate preview.
- Typical Runtime: Queries precomputed dense scores over gRPC in 1.5–3.0
s for up to 1,000 bp (default
--max_window_size).
4. Inspect Atlas Database Metadata (metadata)
Dump or search registered scorers, the 18 biological feature definitions, or
experimental track catalogs:
# List all registered scorers:
uv run scripts/alphagenome_atlas_avi.py metadata --scorers --format json
# List the 18 biological feature attribution modalities:
uv run scripts/alphagenome_atlas_avi.py metadata --features --format json
# Search experimental tracks by query keyword with a controlled preview (top 20):
uv run scripts/alphagenome_atlas_avi.py metadata --tracks --query "GATA1" --top_n 20
# Dump complete 9,440-track catalog to Parquet or TSV for offline search:
uv run scripts/alphagenome_atlas_avi.py metadata --tracks --output atlas_tracks.parquet
- Output Size & Redirection:
--features (1.3 KB) and --scorers table
(1.7 KB) are safely under 4 KB. The experimental track catalog contains
9,440 tracks (~972 KB table / ~2.55 MB JSON). Never dump unfiltered
tracks to stdout; always supply a narrow --query, specify --top_n 20,
or export to --output atlas_tracks.parquet.
- Typical Runtime: ~1.5–2.5 s.
5. Inspect Gene Structure & Splice Junctions (gtf)
Query GENCODE v46 gene annotations, extract 1-based exon boundaries with
donor/acceptor coordinates, and compute canonical and exon-skipping splice
junction coordinates:
# Query MANE Select exon boundaries for a gene (stdout JSON preview):
uv run scripts/alphagenome_atlas_avi.py gtf --gene CAPN3 --exons --format json
# Query canonical and exon-skipping splice junctions for a variant locus:
uv run scripts/alphagenome_atlas_avi.py gtf --variant "chr15:42387805:C>G" --junctions --format json
# Extract CDS and UTR segments for an Ensembl transcript ID:
uv run scripts/alphagenome_atlas_avi.py gtf --transcript_id ENST00000397163.8 --cds --utr --format json
- Output Size & Redirection: Single-gene MANE Select queries with
--exons are compact
(<2.5 KB). Always export to --output <file.tsv|parquet>or redirect (> gtf_out.json) when passing --all_transcripts(30–500
KB),--region($>50\text{ kb}$),--format json, or querying genes with
$>30$ exons (e.g.TTN, DMD).
- Typical Runtime & Memory: Ingests the 318 MB GENCODE v46 feather dataset
(
4.37 GB RAM). Cached queries execute in **4–6 s**. Cold-start runs
downloading the file from GCS take ~5–10 s on corp/Cloudtop networks,
but can take up to 60–90 s on external networks. Do not kill the process
prematurely during initial download.
Programmatic Python SDK Usage
When querying AlphaGenome programmatically in Python:
- Client Factory: Always instantiate the client using
atlas.create(api_key) — do NOT instantiate atlas.AtlasClient()
directly (which requires an internal gRPC stub).
- Coordinate System:
genome.Interval operates with 0-based half-open
indexing ([start, end)). When querying a 1-based closed interval
chr:start_1_based-end_1_based, pass start = start_1_based - 1 and end = end_1_based.
- Single Variants:
genome.Variant.from_str("chr:pos:ref>alt") expects
1-based position coordinates.
import os
from alphagenome.atlas import atlas
from alphagenome.data import genome
import dotenv
dotenv.load_dotenv(os.path.expanduser('~/.env'))
client = atlas.create(os.environ['ALPHAGENOME_API_KEY'])
# Query 1-based closed interval chr11:5225727-5226575 using 0-based half-open [5225726, 5226575)
interval = genome.Interval(chromosome='chr11', start=5225726, end=5226575)
results = client.query_interval(
interval,
requested_scorers=['AVI_SCORE', 'AVI_SCORE_FEATURE_IMPORTANCE'],
)
# Query single variant with 1-based coordinate
variant = genome.Variant.from_str('chr11:5225488:A>T')
variant_scores = client.query_variant(
variant,
requested_scorers=['AVI_SCORE', 'AVI_SCORE_FEATURE_IMPORTANCE'],
)
Output Schemas & Response Structures
1. VCF CSQ & INFO Tag Schema (annotate)
When writing annotated VCF files, the following annotations are injected:
- Ensembl VEP
CSQ Format String:
Allele|AVI_PHRED|AVI_RAW|AVI_QUANTILE|AVI_TOP_PERCENTILE|AVI_TOP_FEATURE
- Subfield Definitions:
Allele (string): Alternate allele base(s) (e.g. A).
AVI_PHRED (float): Calibrated Phred impact score ($\text{Phred} =
-10 \cdot \log_{10}(1.0 - \text{quantile})$). Range: [0.0, ~70.0].
Higher = greater functional impact.
AVI_RAW (float): Raw continuous model prediction.
AVI_QUANTILE (float): Calibrated tail quantile ($1 - \text{CDF}$).
Range: (0.0, 1.0].
AVI_TOP_PERCENTILE (float): Top percentile of genome-wide SNVs
($10^{-\text{Phred}/10} \times 100%$, e.g. 0.0380 for Top 0.038%).
AVI_TOP_FEATURE (string): Display name of the top contributing
biological modality (e.g. Splicing, AlphaMissense, ChIP-TF,
DNASE-seq, Cactus).
- Standalone INFO Tags (unless
--vep_csq_only): AVI_PHRED=Float,
AVI_RAW=Float, AVI_QUANTILE=Float, AVI_TOP_PERCENTILE=Float,
AVI_TOP_FEATURE=String.
2. Tabular & JSON Record Schema (query, region, --top_output)
Output records exported to JSON, TSV, CSV, or Parquet contain the following
fields:
rank (integer, present in --top_output and region tabular exports):
1-based candidate rank sorted by Phred descending.
variant (string): Genomic variant string in chr:pos_1_based:ref>alt
format (e.g. chr9:128225994:G>A, where coordinate is 1-based).
chromosome (string): Contig name with chr prefix (e.g. chr9).
position (integer): 1-based genomic coordinate.
ref (string): Reference allele base(s).
alt (string): Alternate allele base(s).
avi_phred (float): Calibrated Phred-scaled score.
avi_raw (float): Raw continuous model score.
avi_quantile (float): Tail quantile ($1 - \text{CDF}$).
top_percentile (float): Exact top percentile value (e.g. 0.3421 for
Top 0.34%).
top_modality (string): Display name of the top contributing biological
modality (e.g. Splicing, AlphaMissense, ChIP-TF).
top_feature_importance (float): Attribution weight (SHAP value) of the
top modality.
- Optional Attribution Weights (
--include_features): 18 columns
fi_<MODALITY> (e.g. fi_MERGED_SPLICING, fi_ALPHAMISSENSE,
fi_MAX_ABS_RNA_SEQ, fi_CACTUS_241_WAY).
- Optional Track Provenance (
--include_track_info):
track_idx_<MODALITY>, track_name_<MODALITY>,
track_biosample_<MODALITY>, track_gene_<MODALITY>.
3. GTF Query Schema (gtf)
When querying gene structure with gtf --format json, each transcript object
provides:
- Gene & Transcript Metadata:
gene_name, gene_id, transcript_id,
transcript_type, chromosome, start, end, strand, is_mane_select,
num_exons (coordinates are 1-based closed).
- Exons Array (
--exons):
exon_number (int): 1-based exon index in 5' to 3' transcript order.
start, end, width (int): 1-based closed exon coordinates and
length in bp.
acceptor, donor (int): 1-based 5' splice acceptor and 3' splice
donor coordinates.
overlaps_variant (bool): True if overlapping the query mutation
site.
- Junctions Array (
--junctions):
type (string): Canonical Intron {i} or Exon {k} Skipping.
upstream_exon, downstream_exon (int): 1-based flanking exon
numbers in 5' to 3' transcript order.
junction_start, junction_end (int): 1-based genomic donor and
acceptor coordinates.
intron_length (int): Intron length in bp.
score_id (string): Constructed Atlas track comparison token.
atlas_url (string): Clickable deep-link to Atlas track predictions.
- CDS & UTR Arrays (
--cds, --utr): 1-based closed start, end,
width (int).
Score Metrics & Interpretation
- AVI Phred: Calibrated score (
Phred = -10 * log10(1.0 - quantile)):
Phred >= 40: Top 0.01% predicted impact of all genome-wide SNVs.
Phred >= 30: Top 0.10% predicted impact of all genome-wide SNVs.
Phred >= 20: Top 1.0% predicted impact of all genome-wide SNVs.
Phred >= 15: Top 3.16% predicted impact of all genome-wide SNVs.
Phred >= 10: Top 10.0% predicted impact of all genome-wide SNVs.
Phred < 10: Bottom 90% of all genome-wide SNVs.
- Top Percentile: Exact percentage of genome-wide SNVs with equal or
greater impact:
Top Percentile = 10^(-Phred/10) * 100% (e.g. Phred 29.7
$\implies$ Top 0.11%).
- Top Modality: Leading biological feature attribution (
metadata --features).
Visualizations & Atlas Deep-Linking
[!IMPORTANT] Mandatory Atlas Deep-Linking with Variant Scores: Whenever
reporting, discussing, or displaying an AVI score for a variant (whether for a
single variant query, a ranked candidate table, or a genomic region scan), you
MUST always provide a clickable deep-link to the
AlphaGenome Atlas
for each variant.
- User Context Prioritization: Always prioritize context from the user
first (e.g., disease, tissue, or relevant cell types). When absent, use
--include_track_info with query to discover the driving biosample, cell
line, ontology CURIE, and track index.
- Mandatory Splicing & RNA-seq Co-Plotting Rule: Whenever plotting or
visualizing splicing variants, always plot continuous RNA-seq expression
alongside splicing tracks (
SPLICE_JUNCTIONS, SPLICE_SITE_USAGE,
SPLICE_SITES) to evaluate both structural splice disruption and resulting
transcript abundance changes.
- Atlas Link Construction: Use the
alphagenome-atlas-website-links
skill (scripts/alphagenome_atlas_links.py) for all URL generation,
layout configuration (lItems), biosample filtering (f), and
/atlas/track-predictions comparison chart links.
1---2name: alphagenome-variant-impact-score3description: Score, annotate, and analyze the functional impact of genetic variants using AlphaGenome Variant Impact (AVI) scores. Query variants in chr:pos:ref>alt format, annotate VCF/tabular callsets, perform saturation mutagenesis window scans (1-based closed chr:start-end), and extract GENCODE v46 GTF gene/exon/junction coordinates all via the AlphaGenome Atlas API.4---5
6# AlphaGenome Variant Impact (AVI) Analysis
7
8Score and prioritize genetic variants using AlphaGenome Variant Impact (AVI)
9models via `scripts/alphagenome_atlas_avi.py`.
10
11> [!IMPORTANT] **Research Use Only & Clinical Safety Rules**: The AlphaGenome
12> AVI Skill and the underlying AlphaGenome model/Atlas are **strictly research
13> tools**. Access to outputs requires an AlphaGenome API key subject to terms of
14> service prohibiting clinical use.
15>
16> 1. **No Medical Advice or Clinical Diagnosis**: You **MUST NOT** provide
17> medical advice, clinical diagnoses, disease management strategies, or
18> treatment recommendations based on outputs from this skill or the
19> AlphaGenome Atlas.
20> 2. **Strict Molecular & Functional Framing**: A high AVI score reflects
21> **predicted molecular/functional impact** (e.g., disruption of splicing,
22> alteration of transcription factor binding, chromatin accessibility
23> changes, or coding consequences). Frame all findings in terms of molecular
24> mechanisms and biological annotations—never as clinical diagnoses or
25> medical conclusions.
26> 3. **No Diagnostic Leaps**: Never extrapolate high functional impact to
27> clinical disease causation, penetrance, or patient prognosis. If a user
28> asks a clinical or diagnostic question, explicitly clarify that
29> AlphaGenome is a research tool and restrict your answer to the predicted
30> molecular and functional effects.
31
32> [!IMPORTANT] **Always Use AlphaGenome GENCODE v46 GTF
33> (`scripts/alphagenome_atlas_avi.py gtf`) for Gene Annotations**: When
34> retrieving gene models, transcript IDs, exon coordinates, CDS/UTR regions, or
35> splice junction donor/acceptor boundaries, **always use the built-in
36> `scripts/alphagenome_atlas_avi.py gtf` command**. Do **NOT** query external
37> sources (e.g., Ensembl REST API, UCSC, external GTF databases, or NCBI) for
38> gene annotations or transcript coordinates. This ensures that the annotations
39> match the scores and website.
40
41--------------------------------------------------------------------------------
42
43## Prerequisites
44
45Run `scripts/alphagenome_atlas_avi.py` using `uv run`:
46
47```bash
48# Display CLI help:
49uv run scripts/alphagenome_atlas_avi.py --help
50```
51
52> [!TIP] **Agent & Programmatic Execution Format**: When invoking the CLI in
53> agent workflows, prefer `--format json` or direct file export (`-o <file>`)
54> for deterministic, structured parsing rather than extracting fields from
55> stdout markdown tables.
56
57### 1. Query Variants (`query`)
58
59Query single or multiple variants in 1-based `chr:pos:ref>alt` format to inspect
60scores and the 18 biological feature attribution weights:
61
62```bash
63# Query single variant with basic feature importances (stdout JSON preview):
64uv run scripts/alphagenome_atlas_avi.py query "chr9:128225994:G>A" --format json
65
66# Query variant with exact underlying Atlas track indices, biosamples, and target genes:
67uv run scripts/alphagenome_atlas_avi.py query "chr9:128225994:G>A" --include_track_info --format json
68
69# Query multiple variants and export full track info to a file (prevents stdout overflow):
70uv run scripts/alphagenome_atlas_avi.py query "chr9:128225994:G>A" "chr22:36201698:A>C" \
71 --include_track_info --format json -o query_results.json
72```
73
74* **Output Size & Redirection**: Single variant table/JSON queries are compact
75 (~1.0–1.5 KB). When querying $>3$ variants or passing `--include_track_info
76 --format json` (which generates ~3.9 KB per variant), **always export
77 directly to a file** using `-o <file.json>` or `-o <file.tsv>` to avoid
78 exceeding context window limits.
79* **Typical Runtime**: ~0.5–1.0 s per variant (~12–15 s total including
80 environment startup). Single calls with $>100$ variants take $>1$ minute.
81
82### 2. Annotate & Rank Variant Files (`annotate`)
83
84Annotate a VCF (or CSV/TSV/Parquet) in standard Ensembl VEP `CSQ` format:
85
86```bash
87uv run scripts/alphagenome_atlas_avi.py annotate \
88 --input test_data/example_variants.vcf \
89 --output annotated_variants.vcf \
90 --top_k 20 \
91 --min_phred 15.0 \
92 --top_output top_variants.json
93```
94
95* **Output Size & Redirection**: `annotate` streams the full callset directly
96 to disk via `--output` (`.vcf`, `.vcf.gz`, `.parquet`, `.tsv`, `.csv`).
97 Stdout displays a bounded summary (top candidate table + top 3 modality
98 breakdowns, ~4.0–5.5 KB). Use `--top_output <file.json>` when downstream
99 tools need machine-readable top candidate data.
100* **Typical Runtime & Callset Scaling**: Throughput is ~10 variants/s
101 (default) and ~5 variants/s (with track info). Small callsets ($\le 100$
102 variants) take ~15 s. Callsets $\ge 500$ variants execute silently for $>1$
103 minute (e.g., 1,000 variants take ~2–3 min; 10,000 variants take ~20 min).
104
105### 3. Saturation Mutagenesis Window Scan (`region`)
106
107Scan a 1-based closed genomic window (`chr:start-end`) to score all possible
108single nucleotide substitutions ($3 \times N$ variants for an $N$-bp window):
109
110```bash
111uv run scripts/alphagenome_atlas_avi.py region \
112 --region chr9:128225990-128226000 \
113 --min_phred 15.0 \
114 --top_k 20 \
115 --output region_hotspots.tsv
116```
117
118* **Output Size & Redirection**: Scanning a 100 bp window produces 300 SNVs
119 (~42 KB TSV / ~105 KB JSON), while a 1,000 bp window produces 3,000 SNVs
120 (~421 KB TSV / ~1.06 MB JSON). **Always specify `--output
121 <file.tsv|parquet>`** to save the complete dataset; stdout will only show a
122 top-20 candidate preview.
123* **Typical Runtime**: Queries precomputed dense scores over gRPC in **1.5–3.0
124 s** for up to 1,000 bp (default `--max_window_size`).
125
126### 4. Inspect Atlas Database Metadata (`metadata`)
127
128Dump or search registered scorers, the 18 biological feature definitions, or
129experimental track catalogs:
130
131```bash
132# List all registered scorers:
133uv run scripts/alphagenome_atlas_avi.py metadata --scorers --format json
134
135# List the 18 biological feature attribution modalities:
136uv run scripts/alphagenome_atlas_avi.py metadata --features --format json
137
138# Search experimental tracks by query keyword with a controlled preview (top 20):
139uv run scripts/alphagenome_atlas_avi.py metadata --tracks --query "GATA1" --top_n 20
140
141# Dump complete 9,440-track catalog to Parquet or TSV for offline search:
142uv run scripts/alphagenome_atlas_avi.py metadata --tracks --output atlas_tracks.parquet
143```
144
145* **Output Size & Redirection**: `--features` (~1.3 KB) and `--scorers` table
146 (~1.7 KB) are safely under 4 KB. The experimental track catalog contains
147 **9,440 tracks** (~972 KB table / ~2.55 MB JSON). **Never dump unfiltered
148 tracks to stdout**; always supply a narrow `--query`, specify `--top_n 20`,
149 or export to `--output atlas_tracks.parquet`.
150* **Typical Runtime**: ~1.5–2.5 s.
151
152### 5. Inspect Gene Structure & Splice Junctions (`gtf`)
153
154Query GENCODE v46 gene annotations, extract 1-based exon boundaries with
155donor/acceptor coordinates, and compute canonical and exon-skipping splice
156junction coordinates:
157
158```bash
159# Query MANE Select exon boundaries for a gene (stdout JSON preview):
160uv run scripts/alphagenome_atlas_avi.py gtf --gene CAPN3 --exons --format json
161
162# Query canonical and exon-skipping splice junctions for a variant locus:
163uv run scripts/alphagenome_atlas_avi.py gtf --variant "chr15:42387805:C>G" --junctions --format json
164
165# Extract CDS and UTR segments for an Ensembl transcript ID:
166uv run scripts/alphagenome_atlas_avi.py gtf --transcript_id ENST00000397163.8 --cds --utr --format json
167```
168
169* **Output Size & Redirection**: Single-gene MANE Select queries with
170 `--exons` are compact
171 (<2.5 KB). **Always export to `--output <file.tsv|parquet>`or redirect (`>
172 gtf_out.json`)** when passing `--all_transcripts`(30–500
173 KB),`--region`($>50\text{ kb}$),`--format json`, or querying genes with
174 $>30$ exons (e.g.`TTN`, `DMD`).
175* **Typical Runtime & Memory**: Ingests the 318 MB GENCODE v46 feather dataset
176 (~4.37 GB RAM). Cached queries execute in **~4–6 s**. Cold-start runs
177 downloading the file from GCS take **~5–10 s** on corp/Cloudtop networks,
178 but can take up to **60–90 s** on external networks. Do not kill the process
179 prematurely during initial download.
180
181--------------------------------------------------------------------------------
182
183## Programmatic Python SDK Usage
184
185When querying AlphaGenome programmatically in Python:
186
1871. **Client Factory**: Always instantiate the client using
188 `atlas.create(api_key)` — do **NOT** instantiate `atlas.AtlasClient()`
189 directly (which requires an internal gRPC stub).
1902. **Coordinate System**: `genome.Interval` operates with **0-based half-open
191 indexing** (`[start, end)`). When querying a 1-based closed interval
192 `chr:start_1_based-end_1_based`, pass `start = start_1_based - 1` and `end =
193 end_1_based`.
1943. **Single Variants**: `genome.Variant.from_str("chr:pos:ref>alt")` expects
195 **1-based** position coordinates.
196
197```python
198import os
199from alphagenome.atlas import atlas
200from alphagenome.data import genome
201import dotenv
202
203dotenv.load_dotenv(os.path.expanduser('~/.env'))
204client = atlas.create(os.environ['ALPHAGENOME_API_KEY'])
205
206# Query 1-based closed interval chr11:5225727-5226575 using 0-based half-open [5225726, 5226575)
207interval = genome.Interval(chromosome='chr11', start=5225726, end=5226575)
208results = client.query_interval(
209 interval,
210 requested_scorers=['AVI_SCORE', 'AVI_SCORE_FEATURE_IMPORTANCE'],
211)
212
213# Query single variant with 1-based coordinate
214variant = genome.Variant.from_str('chr11:5225488:A>T')
215variant_scores = client.query_variant(
216 variant,
217 requested_scorers=['AVI_SCORE', 'AVI_SCORE_FEATURE_IMPORTANCE'],
218)
219```
220
221--------------------------------------------------------------------------------
222
223## Output Schemas & Response Structures
224
225### 1. VCF CSQ & INFO Tag Schema (`annotate`)
226
227When writing annotated VCF files, the following annotations are injected:
228
229* **Ensembl VEP `CSQ` Format String**:
230 `Allele|AVI_PHRED|AVI_RAW|AVI_QUANTILE|AVI_TOP_PERCENTILE|AVI_TOP_FEATURE`
231* **Subfield Definitions**:
232 * `Allele` (*string*): Alternate allele base(s) (e.g. `A`).
233 * `AVI_PHRED` (*float*): Calibrated Phred impact score ($\text{Phred} =
234 -10 \cdot \log_{10}(1.0 - \text{quantile})$). Range: `[0.0, ~70.0]`.
235 Higher = greater functional impact.
236 * `AVI_RAW` (*float*): Raw continuous model prediction.
237 * `AVI_QUANTILE` (*float*): Calibrated tail quantile ($1 - \text{CDF}$).
238 Range: `(0.0, 1.0]`.
239 * `AVI_TOP_PERCENTILE` (*float*): Top percentile of genome-wide SNVs
240 ($10^{-\text{Phred}/10} \times 100\%$, e.g. `0.0380` for Top 0.038%).
241 * `AVI_TOP_FEATURE` (*string*): Display name of the top contributing
242 biological modality (e.g. `Splicing`, `AlphaMissense`, `ChIP-TF`,
243 `DNASE-seq`, `Cactus`).
244* **Standalone INFO Tags** (unless `--vep_csq_only`): `AVI_PHRED=Float`,
245 `AVI_RAW=Float`, `AVI_QUANTILE=Float`, `AVI_TOP_PERCENTILE=Float`,
246 `AVI_TOP_FEATURE=String`.
247
248### 2. Tabular & JSON Record Schema (`query`, `region`, `--top_output`)
249
250Output records exported to JSON, TSV, CSV, or Parquet contain the following
251fields:
252
253* `rank` (*integer*, present in `--top_output` and `region` tabular exports):
254 1-based candidate rank sorted by Phred descending.
255* `variant` (*string*): Genomic variant string in `chr:pos_1_based:ref>alt`
256 format (e.g. `chr9:128225994:G>A`, where coordinate is 1-based).
257* `chromosome` (*string*): Contig name with `chr` prefix (e.g. `chr9`).
258* `position` (*integer*): 1-based genomic coordinate.
259* `ref` (*string*): Reference allele base(s).
260* `alt` (*string*): Alternate allele base(s).
261* `avi_phred` (*float*): Calibrated Phred-scaled score.
262* `avi_raw` (*float*): Raw continuous model score.
263* `avi_quantile` (*float*): Tail quantile ($1 - \text{CDF}$).
264* `top_percentile` (*float*): Exact top percentile value (e.g. `0.3421` for
265 Top 0.34%).
266* `top_modality` (*string*): Display name of the top contributing biological
267 modality (e.g. `Splicing`, `AlphaMissense`, `ChIP-TF`).
268* `top_feature_importance` (*float*): Attribution weight (SHAP value) of the
269 top modality.
270* **Optional Attribution Weights (`--include_features`)**: 18 columns
271 `fi_<MODALITY>` (e.g. `fi_MERGED_SPLICING`, `fi_ALPHAMISSENSE`,
272 `fi_MAX_ABS_RNA_SEQ`, `fi_CACTUS_241_WAY`).
273* **Optional Track Provenance (`--include_track_info`)**:
274 `track_idx_<MODALITY>`, `track_name_<MODALITY>`,
275 `track_biosample_<MODALITY>`, `track_gene_<MODALITY>`.
276
277### 3. GTF Query Schema (`gtf`)
278
279When querying gene structure with `gtf --format json`, each transcript object
280provides:
281
282* **Gene & Transcript Metadata**: `gene_name`, `gene_id`, `transcript_id`,
283 `transcript_type`, `chromosome`, `start`, `end`, `strand`, `is_mane_select`,
284 `num_exons` (coordinates are 1-based closed).
285* **Exons Array (`--exons`)**:
286 * `exon_number` (*int*): 1-based exon index in 5' to 3' transcript order.
287 * `start`, `end`, `width` (*int*): 1-based closed exon coordinates and
288 length in bp.
289 * `acceptor`, `donor` (*int*): 1-based 5' splice acceptor and 3' splice
290 donor coordinates.
291 * `overlaps_variant` (*bool*): True if overlapping the query mutation
292 site.
293* **Junctions Array (`--junctions`)**:
294 * `type` (*string*): `Canonical Intron {i}` or `Exon {k} Skipping`.
295 * `upstream_exon`, `downstream_exon` (*int*): 1-based flanking exon
296 numbers in 5' to 3' transcript order.
297 * `junction_start`, `junction_end` (*int*): 1-based genomic donor and
298 acceptor coordinates.
299 * `intron_length` (*int*): Intron length in bp.
300 * `score_id` (*string*): Constructed Atlas track comparison token.
301 * `atlas_url` (*string*): Clickable deep-link to Atlas track predictions.
302* **CDS & UTR Arrays (`--cds`, `--utr`)**: 1-based closed `start`, `end`,
303 `width` (*int*).
304
305--------------------------------------------------------------------------------
306
307## Score Metrics & Interpretation
308
309* **AVI Phred**: Calibrated score (`Phred = -10 * log10(1.0 - quantile)`):
310 * `Phred >= 40`: **Top 0.01%** predicted impact of all genome-wide SNVs.
311 * `Phred >= 30`: **Top 0.10%** predicted impact of all genome-wide SNVs.
312 * `Phred >= 20`: **Top 1.0%** predicted impact of all genome-wide SNVs.
313 * `Phred >= 15`: **Top 3.16%** predicted impact of all genome-wide SNVs.
314 * `Phred >= 10`: **Top 10.0%** predicted impact of all genome-wide SNVs.
315 * `Phred < 10`: **Bottom 90%** of all genome-wide SNVs.
316* **Top Percentile**: Exact percentage of genome-wide SNVs with equal or
317 greater impact: `Top Percentile = 10^(-Phred/10) * 100%` (e.g. Phred 29.7
318 $\implies$ Top 0.11%).
319* **Top Modality**: Leading biological feature attribution (`metadata
320 --features`).
321
322--------------------------------------------------------------------------------
323
324## Visualizations & Atlas Deep-Linking
325
326> [!IMPORTANT] **Mandatory Atlas Deep-Linking with Variant Scores**: Whenever
327> reporting, discussing, or displaying an AVI score for a variant (whether for a
328> single variant query, a ranked candidate table, or a genomic region scan), you
329> **MUST always provide a clickable deep-link to the
330> [AlphaGenome Atlas](https://deepmind.google.com/science/alphagenome/atlas)**
331> for each variant.
332
3331. **User Context Prioritization**: Always prioritize **context from the user
334 first** (e.g., disease, tissue, or relevant cell types). When absent, use
335 `--include_track_info` with `query` to discover the driving biosample, cell
336 line, ontology CURIE, and track index.
3372. **Mandatory Splicing & RNA-seq Co-Plotting Rule**: Whenever plotting or
338 visualizing splicing variants, **always plot continuous RNA-seq expression
339 alongside splicing tracks** (`SPLICE_JUNCTIONS`, `SPLICE_SITE_USAGE`,
340 `SPLICE_SITES`) to evaluate both structural splice disruption and resulting
341 transcript abundance changes.
3423. **Atlas Link Construction**: Use the **`alphagenome-atlas-website-links`
343 skill** (`scripts/alphagenome_atlas_links.py`) for all URL generation,
344 layout configuration (`lItems`), biosample filtering (`f`), and
345 `/atlas/track-predictions` comparison chart links.