import { VariantAnnotationSummary } from 'genome-nexus-ts-api-client'; import { observer } from 'mobx-react'; import * as React from 'react'; import { getTranscriptConsequenceSummary } from '../../util/AnnotationSummaryUtil'; import './TranscriptSummaryTable.module.scss'; import TranscriptTable from './TranscriptTable'; interface ITranscriptSummaryTableProps { annotation: VariantAnnotationSummary | undefined; isOpen: boolean; allValidTranscripts: string[]; onTranscriptSelect(transcriptId: string): void; } export interface ITranscript { transcript: string | undefined; hugoGeneSymbol: string | undefined; hgvsShort: string | undefined; refSeq: string | undefined; variantClassification: string | undefined; hgvsc: string | undefined; consequenceTerms: string | undefined; exon: string | undefined; } @observer class TranscriptSummaryTable extends React.Component< ITranscriptSummaryTableProps > { public render() { return (
); } private putCanonicalTranscriptInTable( annotation: VariantAnnotationSummary | undefined ) { const transcriptConsequenceSummary = getTranscriptConsequenceSummary( annotation ); const canonicalTranscript = { transcript: transcriptConsequenceSummary.transcriptId, hugoGeneSymbol: transcriptConsequenceSummary.hugoGeneSymbol, hgvsShort: transcriptConsequenceSummary.hgvspShort, refSeq: transcriptConsequenceSummary.refSeq, variantClassification: transcriptConsequenceSummary.variantClassification, hgvsc: transcriptConsequenceSummary.hgvsc, consequenceTerms: transcriptConsequenceSummary.consequenceTerms, exon: transcriptConsequenceSummary.exon, }; return canonicalTranscript; } private putOtherTranscriptsInTable( annotation: VariantAnnotationSummary | undefined ) { const otherTranscript: ITranscript[] = []; const canonicalTranscriptId = this.putCanonicalTranscriptInTable( annotation ).transcript; if ( annotation !== undefined && annotation.transcriptConsequenceSummaries ) { annotation.transcriptConsequenceSummaries.forEach(transcript => { if (transcript.transcriptId !== canonicalTranscriptId) { otherTranscript.push({ transcript: transcript.transcriptId, hugoGeneSymbol: transcript.hugoGeneSymbol, hgvsShort: transcript.hgvspShort, refSeq: transcript.refSeq, variantClassification: transcript.variantClassification, hgvsc: transcript.hgvsc, consequenceTerms: transcript.consequenceTerms, exon: transcript.exon, }); } }); } return otherTranscript; } } export default TranscriptSummaryTable;