diff --git a/graphql-api/src/graphql/resolvers/va.spec.ts b/graphql-api/src/graphql/resolvers/va.spec.ts index 9f8c0a8da..ee3d78fe4 100644 --- a/graphql-api/src/graphql/resolvers/va.spec.ts +++ b/graphql-api/src/graphql/resolvers/va.spec.ts @@ -59,6 +59,11 @@ describe('resolveVACohortAlleleFrequency', () => { faf95: { popmax: 0.123, popmax_population: 'afr' }, ancestry_groups: [], filters: ['AC0'], + quality_metrics: { + allele_balance: { + alt: { bin_freq: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] }, + }, + }, } const variantESDocument = { @@ -103,7 +108,7 @@ describe('resolveVACohortAlleleFrequency', () => { lowComplexityRegion: true, lowConfidenceLossOfFunctionError: true, lossOfFunctionWarning: true, - heterozygousSkewedAlleleCount: null, + heterozygousSkewedAlleleCount: 37, }, }, ] diff --git a/graphql-api/src/graphql/resolvers/va.ts b/graphql-api/src/graphql/resolvers/va.ts index 6efdd1680..be3edfebe 100644 --- a/graphql-api/src/graphql/resolvers/va.ts +++ b/graphql-api/src/graphql/resolvers/va.ts @@ -371,6 +371,25 @@ const addSubcohorts = ( return Object.values(subcohortMap) } +type ESFrequencies = { + quality_metrics: { + allele_balance: { + alt?: { + bin_freq: number[] + } + } + } +} + +const calculateHeterozygousSkewedAlleleCount = (frequencies: ESFrequencies): number | null => { + const { alt } = frequencies.quality_metrics.allele_balance + if (!alt) { + return null + } + + return alt.bin_freq[18] + alt.bin_freq[19] +} + export const resolveVACohortAlleleFrequencies = async ( obj: any, args: any, @@ -393,7 +412,7 @@ export const resolveVACohortAlleleFrequencies = async ( lowComplexityRegion: obj.flags.includes('lcr'), lowConfidenceLossOfFunctionError: obj.flags.includes('lc_lof'), lossOfFunctionWarning: obj.flags.includes('lof_flag'), - heterozygousSkewedAlleleCount: null, + heterozygousSkewedAlleleCount: calculateHeterozygousSkewedAlleleCount(frequencies), } const fullSet: Subset = {