onekgpd
Query the 1000 Genomes Project dataset (3,202 whole-genome-sequenced individuals, GRCh38) at the level of individual participants. Use when a question is about individuals or variants in the 1000 Genomes Project cohort: which individuals carry variants matching specific criteria in a gene or region,
By k-dense-ai · 623 installs
npx skills add k-dense-ai/scientific-agent-skills --skill onekgpd
Source repository · Upstream listing
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 example
HG00096 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.
The public service is TLS gRPC at db.dnaerys.org:443 , accessed with
dnaerys 0.2.1 (Python 3.11+); it is not a REST base URL. The maintained
service snapshot advertises VEP 115 / GENCODE 49, ClinVar 202502, and gnomAD
4.1. These are the service's annotation releases, not the latest release of
each upstream resource. Record them when interpreting results.
When to Use
Use this skill when you need to:
Find variants carried in a region or set of regions matching some criteria
across the whole cohort ( select variants ).
Find variants carried in a region or set of regions matching some criteria
in specific set of individuals ( select variants in samples ).
Find which 1000 Genomes individuals carry variants matching some criteria
in a region or set of regions ( select samples ).
Count how many individuals carry specific variants ( count samples ).
Restrict any variant query to heterozygous only or homozygous only
carriage, or query both together (default).
Identify which individuals are homozygous reference at a single position
( select samples hom ref ).
Determine the relatedness between two named 1000 Genomes individuals —
both the degree (twin / 1st / 2nd / 3rd / unrelated) and the KING kinship
coefficient ( kinship ).
Get dataset totals — sample count, sex split, variant count, assembly
( dataset info ).
Variant selection can be specified by KGP allele frequency, gnomAD 4.1 exome and
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:
Resolving a gene symbol, rsID, or transcript to coordinates, or fetching
reference sequence. Resolve coordinates first (see Coordinate Provenance
below), then query this skill with the resolved GRCh38 region.
Any cohort other than the 1000 Genomes Project — this skill serves only that
dataset.
Prerequisites
1. uv : This skill's script is run with uv run , which reads the script's
inline dependency metadata and provisions an ephemeral environment. Ensure
uv is installed and on PATH (https://docs.astral.sh/uv/).
2. Data use terms : The 1000 Genomes Project data is open; users should be
aware of the 1000 Genomes Project / IGSR data use terms
(https://www.internationalgenome.org/data).
3. Access constraints : There is no API key, no .env file, and no
rate limit token to configure.
4. Timeouts : network commands use timeout 30 seconds per RPC by default.
A positive finite override is allowed. Pagination makes several RPCs and
retryable failures retry the whole fetch up to three times, so this is not
a deadline for the whole command.
Core Rules
Use the Wrappers : ALWAYS execute the provided helper scripts rather than
constructing your own client calls or network requests. Use
scripts/onekgpd api.py for variant/sample/kinship queries (it handles the
connection, streaming, pagination, and JSON serialization), and
scripts/onekgpd meta.py for sample/population metadata (offline, see
[Sample & population metadata]( sample population metadata offline)).
Coordinates MUST be resolved against an authoritative source first — see
[Coordinate Provenance]( coordinate provenance mandatory first step). This
is mandatory, not advisory.
Count before you select : every variant and sample selection has a paired
counting command. Call the count command FIRST to size the result set, then
select only if the count is manageable.
Zygosity defaults to both : selection and counting commands include both
heterozygous and homozygous carriage by default. Narrow with het only
or hom only when the question is specifically about one state. (You do
not need to pass anything to get both.)
Output : scripts write full JSON to a file ( output , default under
/tmp/ ) and print a concise summary to stdout. Do not read large JSON files
into context — use jq or a small disposable uv run python snippet to
extract fields. page size retrieves every page but accumulates all
variants in RAM; it is not a bounded memory export. Size the query first.
Check completeness : result incomplete=true means results cannot support
a definitive zero/absence claim. Re run after service recovery. For capped
variant selections, truncated=true means the limit was reached and more
records may exist, even if the cluster result itself was complete.
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 or NCBI), and query
with those resolved coordinates. Inputs are 1 based, inclusive : a BED interval
[start0, end0) becomes start=start0+1, end=end0 . Record the source accession,
annotation release, and retrieval date; gene boundaries can differ by annotation
release even on the same assembly. 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.
[!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.
Which individuals carry matching variants in a region → count samples
then select samples
Which variants are carried in a region, cohort wide → count variants
then select variants
Which variants are carried in a region, within a named set of individuals →
count variants in samples then select variants in samples
Who is homozygous reference at a single position → count samples hom ref
then select samples hom ref
Relatedness (degree + coefficient) between two named individuals →
kinship
Dataset totals (sample count, sex split, variant total, assembly) →
dataset info
Cohort interpretation
The 3,202 sample cohort includes relatives: the additional 698 high coverage
samples extend the original 2,504 sample panel. Carrier counts therefore are
not counts of independent observations, and cohort AF is not a population
prevalence estimate. For association or frequency comparisons, document the
selected populations and relatedness policy; use the bundled pedigree metadata
and kinship when choosing or auditing the analysis set. See the
[IGSR cohort announcement](https://www.internationalgenome.org/announcements/3202 samples at high coverage from NYGC/).
Annotation 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]( 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]
gnomad exomes af , gnomad genomes af , and am score use 0.0 for
not annotated in this service snapshot . This does not establish absence
from the current gnomAD release, biological rarity, or a benign prediction.
The dataset's own af field is a different statistic, not this sentinel.
[!CAUTION]
A zero numeric filter is unset on the server , so gnomad exomes af gt 0
does not exclude missing annotations. The wrapper rejects zero, nonfinite,
out of range, and float32 underflowing bounds. Choose an explicit positive
threshold (for example gnomad exomes af gt 0.000001 means AF 1e 6,
not merely annotation presence). For exact 0 , retrieve a complete variant
set and post filter the returned AF locally. A < X filter alone includes
unannotated zero values. Apply the same missing score caution to AlphaMissense.
Categorical annotations are retained across transcripts. Combining consequence
and impact filters does not establish that they describe the same transcript.
amino acids may contain multiple HGVSp entries; the generic gRPC service places
canonical annotations first, whereas the separate MCP layer trims its output.
Preserve transcript identifiers, and do not treat a model's likely pathogenic
class as a clinical diagnosis or a participant phenotype.
Quick Start
Commands
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 comman