Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add GTEx and Pext to gnomAD v4.1 #1602

Merged
merged 9 commits into from
Nov 22, 2024
46 changes: 46 additions & 0 deletions browser/src/DataPage/GnomadV4Downloads.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,52 @@ const GnomadV4Downloads = () => {
</FileList>
</DownloadsSection>

<DownloadsSection>
<SectionTitle id="v4-pext">Proportion expressed across transcripts (pext)</SectionTitle>
<p>
For information on pext, see{' '}
{/* @ts-expect-error TS(2769) FIXME: No overload matches this call. */}
<ExternalLink href="https://doi.org/10.1038/s41586-020-2329-2">
<em>Transcript expression-aware annotation improves rare variant interpretation.</em>{' '}
Nature 581, 452–458 (2020)
</ExternalLink>
</p>
<FileList>
{/* @ts-expect-error TS(2745) FIXME: This JSX tag's 'children' prop expects type 'never... Remove this comment to see the full error message */}
<ListItem>
<GetUrlButtons
label="Annotation-level pext for all possible SNVs Hail table"
path="/release/4.1/pext/gnomad.pext.gtex_v10.annotation_level.ht"
includeAzure={false}
/>
</ListItem>
{/* @ts-expect-error TS(2745) FIXME: This JSX tag's 'children' prop expects type 'never... Remove this comment to see the full error message */}
<ListItem>
<DownloadLinks
label="Annotation-level pext for all possible SNVs TSV"
path="/release/4.1/pext/gnomad.pext.gtex_v10.annotation_level.tsv.gz"
includeAzure={false}
/>
</ListItem>
{/* @ts-expect-error TS(2745) FIXME: This JSX tag's 'children' prop expects type 'never... Remove this comment to see the full error message */}
<ListItem>
<GetUrlButtons
label="Base-level pext Hail table"
path="/release/4.1/pext/gnomad.pext.gtex_v10.base_level.ht"
includeAzure={false}
/>
</ListItem>
{/* @ts-expect-error TS(2745) FIXME: This JSX tag's 'children' prop expects type 'never... Remove this comment to see the full error message */}
<ListItem>
<DownloadLinks
label="Base-level pext TSV"
path="/release/4.1/pext/gnomad.pext.gtex_v10.base_level.tsv.gz"
includeAzure={false}
/>
</ListItem>
</FileList>
</DownloadsSection>

<DownloadsSection>
<SectionTitle id="v4-resources">Resources</SectionTitle>
<FileList>
Expand Down
167 changes: 167 additions & 0 deletions browser/src/DataPage/__snapshots__/DataPage.spec.tsx.snap
Original file line number Diff line number Diff line change
Expand Up @@ -8556,6 +8556,173 @@ exports[`Data Page has no unexpected changes 1`] = `
</li>
</ul>
</section>
<section
className="c15"
>
<span
className="c6"
>
<h2
className="c16"
>
<a
aria-hidden="true"
className="c8 c9"
href="#v4-pext"
id="v4-pext"
>
<img
alt=""
aria-hidden="true"
height={12}
src="test-file-stub"
width={12}
/>
</a>
Proportion expressed across transcripts (pext)
</h2>
</span>
<p>
For information on pext, see

<a
className="c11"
href="https://doi.org/10.1038/s41586-020-2329-2"
rel="noopener noreferrer"
target="_blank"
>
<em>
Transcript expression-aware annotation improves rare variant interpretation.
</em>

Nature 581, 452–458 (2020)
</a>
</p>
<ul
className="c19"
>
<li
className="c20"
>
<span>
Annotation-level pext for all possible SNVs Hail table
</span>
<br />
Show URL for

<button
aria-label="Show Google URL for Annotation-level pext for all possible SNVs Hail table"
className="c21"
onClick={[Function]}
type="button"
>
Google
</button>
/
<button
aria-label="Show Amazon URL for Annotation-level pext for all possible SNVs Hail table"
className="c21"
onClick={[Function]}
type="button"
>
Amazon
</button>
</li>
<li
className="c20"
>
<span>
Annotation-level pext for all possible SNVs TSV
</span>
<br />
<span>
Download from

<a
aria-label="Download Annotation-level pext for all possible SNVs TSV from Google"
className="c11"
href="https://storage.googleapis.com/gcp-public-data--gnomad/release/4.1/pext/gnomad.pext.gtex_v10.annotation_level.tsv.gz"
onClick={[Function]}
rel="noopener noreferrer"
target="_blank"
>
Google
</a>
/
<a
aria-label="Download Annotation-level pext for all possible SNVs TSV from Amazon"
className="c11"
href="https://gnomad-public-us-east-1.s3.amazonaws.com/release/4.1/pext/gnomad.pext.gtex_v10.annotation_level.tsv.gz"
onClick={[Function]}
rel="noopener noreferrer"
target="_blank"
>
Amazon
</a>
</span>
</li>
<li
className="c20"
>
<span>
Base-level pext Hail table
</span>
<br />
Show URL for

<button
aria-label="Show Google URL for Base-level pext Hail table"
className="c21"
onClick={[Function]}
type="button"
>
Google
</button>
/
<button
aria-label="Show Amazon URL for Base-level pext Hail table"
className="c21"
onClick={[Function]}
type="button"
>
Amazon
</button>
</li>
<li
className="c20"
>
<span>
Base-level pext TSV
</span>
<br />
<span>
Download from

<a
aria-label="Download Base-level pext TSV from Google"
className="c11"
href="https://storage.googleapis.com/gcp-public-data--gnomad/release/4.1/pext/gnomad.pext.gtex_v10.base_level.tsv.gz"
onClick={[Function]}
rel="noopener noreferrer"
target="_blank"
>
Google
</a>
/
<a
aria-label="Download Base-level pext TSV from Amazon"
className="c11"
href="https://gnomad-public-us-east-1.s3.amazonaws.com/release/4.1/pext/gnomad.pext.gtex_v10.base_level.tsv.gz"
onClick={[Function]}
rel="noopener noreferrer"
target="_blank"
>
Amazon
</a>
</span>
</li>
</ul>
</section>
<section
className="c15"
>
Expand Down
53 changes: 30 additions & 23 deletions browser/src/GenePage/GenePage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ import MitochondrialGeneCoverageTrack from './MitochondrialGeneCoverageTrack'
import MitochondrialVariantsInGene from './MitochondrialVariantsInGene'
import { getPreferredTranscript } from './preferredTranscript'
import StructuralVariantsInGene from './StructuralVariantsInGene'
import TissueExpressionTrack from './TissueExpressionTrack'
import TissueExpressionTrack, { TranscriptWithTissueExpression } from './TissueExpressionTrack'
import VariantsInGene from './VariantsInGene'

import { GnomadConstraint } from '../ConstraintTable/GnomadConstraintTable'
Expand All @@ -71,6 +71,7 @@ import {
LegendSwatch,
} from '../ChartStyles'
import { logButtonClick } from '../analytics'
import { GtexTissueExpression } from './TranscriptsTissueExpression'

export type Strand = '+' | '-'

Expand All @@ -88,6 +89,30 @@ export type GeneMetadata = {
flags: string[]
}

export type GeneTranscript = {
transcript_id: string
transcript_version: string
exons: {
feature_type: string
start: number
stop: number
}[]
gtex_tissue_expression: GtexTissueExpression | null
}

export type Pext = {
regions: {
start: number
stop: number
mean: number
tissues: {
tissue: string
value: number
}[]
}[]
flags: string[]
}

export type Gene = GeneMetadata & {
reference_genome: ReferenceGenome
name?: string
Expand All @@ -100,29 +125,11 @@ export type Gene = GeneMetadata & {
start: number
stop: number
}[]
transcripts: {
transcript_id: string
transcript_version: string
exons: {
feature_type: string
start: number
stop: number
}[]
}[]
transcripts: GeneTranscript[]
flags: string[]
gnomad_constraint?: GnomadConstraint
exac_constraint?: ExacConstraint
pext?: {
regions: {
start: number
stop: number
mean: number
tissues: {
[key: string]: number
}
}[]
flags: string[]
}
pext?: Pext
short_tandem_repeats?: {
id: string
}[]
Expand Down Expand Up @@ -517,6 +524,7 @@ const GenePage = ({ datasetId, gene, geneId }: Props) => {
<TrackWrapper>
<GeneTranscriptsTrack
datasetId={datasetId}
isTissueExpressionAvailable={!!gene.pext}
gene={gene}
includeNonCodingTranscripts={includeNonCodingTranscripts}
includeUTRs={includeUTRs}
Expand All @@ -531,7 +539,7 @@ const GenePage = ({ datasetId, gene, geneId }: Props) => {
exons={cdsCompositeExons}
expressionRegions={gene.pext.regions}
flags={gene.pext.flags}
transcripts={gene.transcripts}
transcripts={gene.transcripts as TranscriptWithTissueExpression[]} // if a gene has pext, it has gtex
preferredTranscriptId={preferredTranscriptId}
preferredTranscriptDescription={preferredTranscriptDescription}
/>
Expand Down Expand Up @@ -563,7 +571,6 @@ const GenePage = ({ datasetId, gene, geneId }: Props) => {
<VariantsInGene
datasetId={datasetId}
gene={gene}
// @ts-expect-error TS(2322) FIXME: Type '{ datasetId: string; gene: { gene_id: string... Remove this comment to see the full error message
includeNonCodingTranscripts={includeNonCodingTranscripts}
includeUTRs={includeUTRs}
zoomRegion={zoomRegion}
Expand Down
Loading
Loading