onekgpd
在 1000 Genomes 项目数据集中查询(共 3,202 名完成全基因组测序的个体,GRCh38),以个体参与者为层级进行检索。当问题涉及该队列中的个体或变异时:哪些个体携带符合特定标准的变异(位于某个基因或区域中)、哪些个体在某个位点为纯合参考、数据集中存在哪些变异或由指定个体在某个基因或区域中携带,以及两位指定个体之间的亲缘关系。返回的变异包含 1000 Genomes 的等位基因频率(AF)、gnomAD v4.1 外显子组与基因组 AF、AlphaMissense 分数以及 HGVSp 注释。
分类
开发工具安装
下载并解压到你的 skills 目录
复制命令,发送给智能体自动安装:
OneKGPd: Individual-Level Queries over the 1000 Genomes Project
Scope
This skill queries the 1000 Genomes Project dataset — the extended high-coverage cohort
of 3,202 whole-genome-sequenced individuals, on the GRCh38 assembly. All results
are drawn from this cohort, and sample names returned by the skill (for exampleHG00096 or NA21130) identify its participants.
Queries resolve against the cohort's per-individual genotype data. This supports
two complementary classes of question: selecting variants carried within a
region (across the whole cohort or within a specified set of individuals), and
selecting the individuals who carry variants matching given criteria.
Variant selection can be filtered by allele frequency, predicted consequence,
clinical significance, AlphaMissense classification, and the other annotation
axes listed below. Relatedness between two named individuals is also available.
The genotype state in which a variant is carried — heterozygous or homozygous —
is a criterion that queries may specify; results are returned as variants or as
sample names, not as raw genotypes.
When to Use
Use this skill when you need to:
across the whole cohort (
select-variants).in specific set of individuals (
select-variants-in-samples).in a region or set of regions (
select-samples).count-samples).carriage, or query both together (default).
(
select-samples-hom-ref).both the degree (twin / 1st / 2nd / 3rd / unrelated) and the KING kinship
coefficient (
kinship).(
dataset-info).gnomAD 4.1 genome allele frequency, AlphaMissense Score and AlphaMissense Class,
ClinVar significance (202502), and VEP annotations (impact, biotype, feature type,
variant class, consequences).
Do NOT use this skill for:
reference sequence. Resolve coordinates first (see Coordinate Provenance
below), then query this skill with the resolved GRCh38 region.
dataset.
Prerequisites
uv: This skill's script is run with uv run, which reads the script'sinline dependency metadata and provisions an ephemeral environment. Ensure
uv is installed and on PATH (https://docs.astral.sh/uv/).aware of the 1000 Genomes Project / IGSR data-use terms
(https://www.internationalgenome.org/data).
.env file, and norate-limit token to configure.
Core Rules
constructing your own client calls or network requests. Use
scripts/onekgpd_api.py for variant/sample/kinship queries (it handles theconnection, streaming, pagination, and JSON serialization), and
scripts/onekgpd_meta.py for sample/population metadata (offline, seeSample & population metadata).
Coordinate Provenance. This
is mandatory, not advisory.
counting command. Call the count command FIRST to size the result set, then
select only if the count is manageable.
heterozygous and homozygous carriage by default. Narrow with
--het-onlyor
--hom-only when the question is specifically about one state. (You donot need to pass anything to get both.)
--output, default under/tmp/) and print a concise summary to stdout. Do not read large JSON filesinto context — use
jq or a small disposable uv run python snippet toextract fields.
Coordinate Provenance (MANDATORY FIRST STEP)
Before any region-based query, resolve the gene or feature to GRCh38
coordinates against an authoritative source (for example Ensembl), and query
with those resolved coordinates. The assembly must be explicit, and a gene-range
must be resolved to precise positions before use. This is structural, not
advisory: there is no source-side guardrail that would catch a misplaced region,
so an unverified coordinate produces results for an unintended location with no
error.
# Resolve gene symbol -> GRCh38 region with an authoritative source FIRST,
# then pass the verified coordinates to the OneKGPd query below.> [!CAUTION]
> The dataset is GRCh38. A GRCh37 coordinate, or any region that does not
> correctly correspond to the intended feature on GRCh38, will return
> results for an unintended location without raising an error. Verify the
> assembly and the resolved coordinates before querying.
Command Selection Guide
Match the question to the command. Counting commands are cheap and should
precede their selection counterpart.
count-samplesthen
select-samplescount-variantsthen
select-variantscount-variants-in-samples then select-variants-in-samplescount-samples-hom-refthen
select-samples-hom-refkinshipdataset-infoAnnotation filters (shared across variant and sample selection/counting)
All variant- and sample-selection commands (count-variants,select-variants, their -in-samples forms, count-samples, select-samples)
accept the same annotation filters. Different filter fields are combined with
AND; multiple values within one field are combined with OR. Enum values
are case-insensitive (e.g. missense_variant or MISSENSE_VARIANT).
These are selection criteria applied on the server. The fields returned on a
selected variant are listed under
Variant-returning commands; a criterion used for
filtering is not necessarily echoed back on the returned variant.
--af-lt / --af-gt: 1000 Genomes dataset allele frequency bounds--gnomad-exomes-af-lt / --gnomad-exomes-af-gt: gnomAD v4.1 exome AF bounds--gnomad-genomes-af-lt / --gnomad-genomes-af-gt: gnomAD v4.1 genome AF bounds--clin-significance: ClinVar significance terms, CSV (e.g. PATHOGENIC,LIKELY_PATHOGENIC)--consequence: Sequence Ontology consequence terms, CSV (e.g. MISSENSE_VARIANT,STOP_GAINED)--impact: VEP impact, CSV (HIGH,MODERATE,LOW,MODIFIER)--variant-type, --feature-type, --bio-type: SO variant class / VEP feature / VEP biotype, CSV--alpha-missense-class: AM_LIKELY_BENIGN,AM_LIKELY_PATHOGENIC,AM_AMBIGUOUS (CSV)--alpha-missense-score-lt / --alpha-missense-score-gt: AlphaMissense score bounds--biallelic-only / --multiallelic-only--exclude-males / --exclude-females--min-len-bp / --max-len-bp: alternate-allele length bounds (bp)> [!NOTE]
> --alpha-missense-class and --alpha-missense-score-* are mutually exclusive
> (the engine ignores the class when a score bound is set). --biallelic-only
> and --multiallelic-only are mutually exclusive. --exclude-males and
> --exclude-females are mutually exclusive. Setting a *-gt bound greater than
> or equal to its matching *-lt bound defines an empty range and will return
> nothing.
> [!NOTE]
> Allele-frequency fields use 0.0 to mean "not present in that source." So
> --gnomad-exomes-af-gt 0 selects variants that are in gnomAD exomes; a
> returned gnomad_exomes_af of 0.0 means the variant is absent from gnomAD
> exomes. The same convention for gnomAD genomes AF.
> Conversely, --gnomad-exomes-af-lt / --gnomad-genomes-af-lt bounds include
unannotated variants: "AF < X in gnomAD" includes variants with gnomAD AF = 0,
i.e. unannotated; pair it with --gnomad-*-af-gt 0 to require presence in gnomAD.
> [!NOTE]
> am_score of 0.0 means not scored or not annotated by AlphaMissense - it does not mean benign.
> A real AlphaMissense score is always greater than 0.
Quick Start
# Step 1. Resolve coordinates against an authoritative source — see Coordinate Provenance.
# example: BRCA1: chr17:43044292-43170245
# Step 2. Size the result set: how many individuals carry predicted likely-pathogenic
# missense variants in this region?
uv run scripts/onekgpd_api.py count-samples \
--chrom chr17 --start 43044292 --end 43170245 \
--consequence MISSENSE_VARIANT \
--alpha-missense-class AM_LIKELY_PATHOGENIC \
--output /tmp/count.json
# Step 3. If the count is manageable, list those individuals.
uv run scripts/onekgpd_api.py select-samples \
--chrom chr17 --start 43044292 --end 43170245 \
--consequence MISSENSE_VARIANT \
--alpha-missense-class AM_LIKELY_PATHOGENIC \
--output /tmp/samples.json
# Step 4: For that set of individuals, see the actual variants they carry.
uv run scripts/onekgpd_api.py select-variants-in-samples \
--chrom chr17 --start 43044292 --end 43170245 \
--samples HG03169,NA20506 \
--consequence MISSENSE_VARIANT --alpha-missense-class AM_LIKELY_PATHOGENIC \
--output /tmp/variants.jsonCommands
Each command writes full JSON to a file (--output PATH, default a temp file)
and prints a concise stdout summary. All region/sample commands share: the
region input (--chrom/--start/--end with optional --ref/--alt, or one
or more repeated --region CHR:START-END), the zygosity flags
(--het-only/--hom-only, default both), and the annotation filters above.
The full per-flag tables live in
references/onekgpd_commands.md.
Variant-returning commands
select-* return matching variants; count-* return an integer count.
count-variants — count variants in a region, cohort-wide.select-variants — select variants in a region, cohort-wide. Use --limit N(hard cap, default 200) or
--page-size N (retrieve the full set inpages); the two are mutually exclusive. The summary flags
truncated whenthe cap is reached.
count-variants-in-samples — as count-variants, restricted to--samples NAME1,NAME2,... (required).select-variants-in-samples — as select-variants, restricted to--samples NAME1,NAME2,... (required).Each returned variant carries these 22 keys: chr, start, end, ref,alt, af, ac, an, hom_samples, het_samples, mis_samples,hom_samples_fx, het_samples_fx, mis_samples_fx, hom_samples_mxy,het_samples_mxy, mis_samples_mxy, gnomad_exomes_af, gnomad_genomes_af,am_score, amino_acids, biallelic.
ClinVar significance and VEP consequence are filter criteria only and are not
returned. Full schema:
references/onekgpd_commands.md.
Sample-returning commands
count-samples — count individuals carrying a matching variant in a region.select-samples — list the names of individuals carrying a matching variant.Supports
--skip N and --limit N. Returns names only; to see whichvariants qualified an individual, feed the names into
select-variants-in-samples.Homozygous-reference commands
Single position via --chrom + --position (not a region).
count-samples-hom-ref — count individuals with a 0/0 call at the position.The count is a sentinel:
-1 = no variant exists at that position at all;0 = a variant exists but no individual is homozygous reference; >0 = thenumber of homozygous-reference individuals. The summary states which case.
select-samples-hom-ref — list the individuals with a 0/0 call at the position.Relatedness command
kinship --sample1 NAME --sample2 NAME — relatedness between two namedindividuals: the degree (
TWINS_MONOZYGOTIC / FIRST_DEGREE /SECOND_DEGREE / THIRD_DEGREE / UNRELATED) and the KING kinshipcoefficient (
phi_bwf).Dataset metadata command
dataset-info — dataset totals: samples_total (3,202), female/male split,variants_total, assembly (GRCh38), and the cohort breakdown. No regionrequired; doubles as a connectivity check.
Sample & population metadata (offline)
Population, sex, pedigree, and superpopulation questions are answered by a second
script, scripts/onekgpd_meta.py, from a data file bundled in the skill — no
network, no credentials, no coordinates. The sample IDs are the same names the
variant commands use, so the two layers compose (e.g. pick a cohort by population,
then query its variants). Run uv run scripts/onekgpd_meta.py <command>.
The cohort has 5 superpopulations (AFR, AMR, EAS, EUR, SAS) and 26
populations. Population/superpopulation values match case-insensitively by
short code or full name; sample IDs are case-sensitive.
sample-metadata --samples NA19240,HG00096 — family, gender, parents,children, population, superpopulation, and phase3 status for the given samples.
list-populations — all 26 populations with superpopulation and sample count(use to discover valid values).
list-superpopulations — the 5 superpopulations with sample count andconstituent populations.
population-stats --populations YRI [--populations CHS …] — per-population sexsplit, phase3 count, and trio membership. Repeat
--populations for multiplevalues (full names contain commas, so they are not comma-separated).
superpopulation-summary --superpopulations EAS [--superpopulations EUR …] —per-superpopulation totals with a per-population breakdown.
select-samples-by-population --population YRI and/or --superpopulation AFR,with optional
--skip/--limit (default 0 / 50, max 3202) — the sample IDs ina population and/or superpopulation; both given intersects. Feed the names into
select-variants-in-samples to see their variants.See references/onekgpd_commands.md for full
argument tables and JSON output schemas.
Typical Workflows
Which individuals, then which variants they carry
# Step 1: resolve gene -> verified GRCh38 region (authoritative source).
# Step 2: count individuals carrying a qualifying variant in the region.
uv run scripts/onekgpd_api.py count-samples \
--chrom <chr> --start <start> --end <end> \
--consequence MISSENSE_VARIANT --alpha-missense-class AM_LIKELY_PATHOGENIC \
--output /tmp/n.json
# Step 3: list those individuals.
uv run scripts/onekgpd_api.py select-samples \
--chrom <chr> --start <start> --end <end> \
--consequence MISSENSE_VARIANT --alpha-missense-class AM_LIKELY_PATHOGENIC \
--output /tmp/who.json
# Step 4: for that set of individuals, see the actual variants they carry.
uv run scripts/onekgpd_api.py select-variants-in-samples \
--chrom <chr> --start <start> --end <end> \
--samples <name1,name2,...> \
--consequence MISSENSE_VARIANT --alpha-missense-class AM_LIKELY_PATHOGENIC \
--output /tmp/variants.jsonHomozygous-reference carriers at a position of interest
# After identifying a position of interest (verified coordinate):
uv run scripts/onekgpd_api.py count-samples-hom-ref \
--chrom <chr> --position <pos> --output /tmp/homref_n.json
uv run scripts/onekgpd_api.py select-samples-hom-ref \
--chrom <chr> --position <pos> --output /tmp/homref.jsonCommon Mistakes
Fix: Always resolve gene/feature → GRCh38 against an authoritative
source first.
A misplaced region returns results for an unintended location without error.
Fix: Count first; selection result sets can be large.
Fix: The dataset is GRCh38 only.
References
per-command argument tables and the returned-variant output schema.
— the controlled-vocabulary terms accepted by the CSV filter flags
(consequence, impact, biotype, feature type, ClinVar significance,
AlphaMissense class, variant class).