Skip to content

Commit 9447737

Browse files
Incorporate exome/genome flags into frontend
1 parent 04dbcf9 commit 9447737

File tree

5 files changed

+43
-12
lines changed

5 files changed

+43
-12
lines changed

browser/src/GenePage/VariantsInGene.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ query ${operationName}($geneId: String!, $datasetId: DatasetId!, $referenceGenom
246246
faf99_max
247247
faf99_max_gen_anc
248248
}
249+
flags
249250
}
250251
genome {
251252
ac
@@ -265,6 +266,7 @@ query ${operationName}($geneId: String!, $datasetId: DatasetId!, $referenceGenom
265266
ac_hemi
266267
ac_hom
267268
}
269+
flags
268270
}
269271
joint {
270272
ac

browser/src/RegionPage/VariantsInRegion.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ query ${operationName}($chrom: String!, $start: Int!, $stop: Int!, $datasetId: D
155155
faf99_max
156156
faf99_max_gen_anc
157157
}
158+
flags
158159
}
159160
genome {
160161
ac
@@ -174,6 +175,7 @@ query ${operationName}($chrom: String!, $start: Int!, $stop: Int!, $datasetId: D
174175
ac_hemi
175176
ac_hom
176177
}
178+
flags
177179
}
178180
joint {
179181
ac

browser/src/VariantList/VariantFlag.tsx

+12-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,17 @@ type Flag = {
88
formatTooltip: (input: any) => string
99
}
1010

11+
const formatMonoallelicFlag = (variant: any) => {
12+
if (variant.exome && variant.exome.flags && variant.exome.flags.includes('monoallelic')) {
13+
if (variant.genome && variant.genome.flags && variant.genome.flags.includes('monoallelic')) {
14+
return 'All samples are homozygous alternate for the variant in both the exome and genome data'
15+
}
16+
return 'All samples are homozygous alternate for the variant in the exome data'
17+
}
18+
19+
return 'All samples are homozygous alternate for the variant in the genome data'
20+
}
21+
1122
export const FLAGS_CONFIG: Record<string, Flag> = {
1223
lcr: {
1324
label: 'LCR',
@@ -46,7 +57,7 @@ export const FLAGS_CONFIG: Record<string, Flag> = {
4657
monoallelic: {
4758
label: 'Monoallelic',
4859
level: 'info',
49-
formatTooltip: () => 'All samples are homozygous alternate for the variant',
60+
formatTooltip: formatMonoallelicFlag,
5061
},
5162
// Mitochondrial variants
5263
common_low_heteroplasmy: {

browser/src/VariantList/variantTableColumns.tsx

+25-11
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,15 @@ const getConsequenceDescription = (contextType: any) => {
4646
return ' for consequence in this transcript'
4747
}
4848
}
49+
50+
const consolidatedFlags = (row: any) => {
51+
const variantFlags = row.flags || []
52+
const exomeFlags = row.exome?.flags || []
53+
const genomeFlags = row.genome?.flags || []
54+
const allFlags = Array.from(new Set([...variantFlags, ...exomeFlags, ...genomeFlags]))
55+
return allFlags.sort()
56+
}
57+
4958
export type VariantTableColumn = {
5059
key: string
5160
heading: string
@@ -163,11 +172,16 @@ const variantTableColumns: VariantTableColumn[] = [
163172
description: 'Flags that may affect annotation and/or confidence',
164173
grow: 0,
165174
minWidth: 140,
166-
compareFunction: makeNumericCompareFunction((variant: any) => variant.flags.length || null),
167-
render: (row: any, key: any) =>
168-
row[key]
169-
.filter((flag: any) => flag !== 'segdup' && flag !== 'par')
170-
.map((flag: any) => <VariantFlag key={flag} type={flag} variant={row} />),
175+
compareFunction: makeNumericCompareFunction(
176+
(variant: any) => consolidatedFlags(variant).length || null
177+
),
178+
render: (row: any) => (
179+
<>
180+
{consolidatedFlags(row).map((flag: any) => (
181+
<VariantFlag key={flag} type={flag} variant={row} />
182+
))}
183+
</>
184+
),
171185
},
172186

173187
{
@@ -208,7 +222,7 @@ const variantTableColumns: VariantTableColumn[] = [
208222
minWidth: 160,
209223
compareFunction: makeStringCompareFunction('hgvs'),
210224
getSearchTerms: (variant: any) => [variant.hgvs],
211-
render: (variant: any, key: any, { highlightWords }: any) => (
225+
render: (variant: any, _: any, { highlightWords }: any) => (
212226
<Cell>
213227
<Highlighter autoEscape searchWords={highlightWords} textToHighlight={variant.hgvs || ''} />
214228
</Cell>
@@ -225,7 +239,7 @@ const variantTableColumns: VariantTableColumn[] = [
225239
minWidth: 160,
226240
compareFunction: makeStringCompareFunction('hgvsc'),
227241
getSearchTerms: (variant: any) => [variant.hgvsc],
228-
render: (variant: any, key: any, { highlightWords }: any) => (
242+
render: (variant: any, _: any, { highlightWords }: any) => (
229243
<Cell>
230244
<Highlighter
231245
autoEscape
@@ -246,7 +260,7 @@ const variantTableColumns: VariantTableColumn[] = [
246260
minWidth: 160,
247261
compareFunction: makeStringCompareFunction('hgvsp'),
248262
getSearchTerms: (variant: any) => [variant.hgvsp],
249-
render: (variant: any, key: any, { highlightWords }: any) => (
263+
render: (variant: any, _: any, { highlightWords }: any) => (
250264
<Cell>
251265
<Highlighter
252266
autoEscape
@@ -315,7 +329,7 @@ const variantTableColumns: VariantTableColumn[] = [
315329
rsids1[0].localeCompare(rsids2[0])
316330
),
317331
getSearchTerms: (variant: any) => variant.rsids || [],
318-
render: (variant: any, key: any, { highlightWords }: any) => (
332+
render: (variant: any, _: any, { highlightWords }: any) => (
319333
<Cell>
320334
<Highlighter
321335
autoEscape
@@ -366,7 +380,7 @@ const variantTableColumns: VariantTableColumn[] = [
366380
grow: 1,
367381
compareFunction: makeNumericCompareFunction('pos'),
368382
getSearchTerms: (variant: any) => [variant.variant_id].concat(variant.rsids || []),
369-
render: (row: any, key: any, { highlightWords }: any) => (
383+
render: (row: any, _: any, { highlightWords }: any) => (
370384
<Cell>
371385
<Link target="_blank" to={`/variant/${row.variant_id}`}>
372386
<Highlighter autoEscape searchWords={highlightWords} textToHighlight={row.variant_id} />
@@ -409,7 +423,7 @@ export const getColumnsForContext = (context: any) => {
409423
: context.canonical_transcript_id
410424

411425
// @ts-expect-error TS(2339) Property 'hgvs' does not exist on type '{}'.
412-
columns.hgvs.render = (variant: any, key: any, { highlightWords }: any) => (
426+
columns.hgvs.render = (variant: any, _: any, { highlightWords }: any) => (
413427
<Cell>
414428
<Highlighter autoEscape searchWords={highlightWords} textToHighlight={variant.hgvs || ''} />
415429
{primaryTranscriptId && variant.transcript_id !== primaryTranscriptId && ' †'}

browser/src/VariantPage/VariantPage.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -586,6 +586,7 @@ query ${operationName}($variantId: String!, $datasetId: DatasetId!, $referenceGe
586586
value
587587
}
588588
}
589+
flags
589590
}
590591
genome {
591592
ac
@@ -665,6 +666,7 @@ query ${operationName}($variantId: String!, $datasetId: DatasetId!, $referenceGe
665666
value
666667
}
667668
}
669+
flags
668670
}
669671
joint {
670672
ac

0 commit comments

Comments
 (0)