I am trying to fetch variant details, including population allele frequency (af
), from the gnomAD database using the GraphQL API. However, the query does not return allele frequency for populations. When I add af
under populations
, I get the following error:
GraphQLError: Cannot query field 'af' on type 'VariantPopulation'. Did you mean 'ac' or 'an'?
GraphQL request:10:9
9 | populations {
10 | af
| ^
11 | id
My Query:
from gql import gql, Client
from gql.transport.aiohttp import AIOHTTPTransport
# GraphQL query to fetch variant details
query = gql(
"""
query VariantsInGene {
gene(gene_symbol: "PTH", reference_genome: GRCh38) {
variants(dataset: gnomad_r4) {
variant_id
pos
exome {
af
populations {
id
af
}
}
}
}
}
"""
)
res = await client.execute_async(query)
af
) at the exome level (works fine).af
inside populations
(causes the error).VariantPopulation
(suggests ac
and an
, but not af
).How can I retrieve allele frequency (af
) per population in gnomAD GraphQL?
If I remove af from query it executes but no af is retrieved for populations:
for variant in res['gene']['variants']:
if 'exome' in variant and 'populations' in variant['exome']
for pop in variant['exome']['populations']:
pop['af'] = pop['ac'] / pop['an'] if pop['an'] > 0 else None
You can add ac
and an
inside population and compute af
The ac
(allele count): tells how many times the allele was observed.
The an
(allele number): is the total number of alleles sampled.
Compute af = ac / an
manually.