Skip to content

Commit

Permalink
update screenshots
Browse files Browse the repository at this point in the history
  • Loading branch information
Rajat-Sirohi committed Jul 21, 2021
1 parent 02a4050 commit 71fc949
Show file tree
Hide file tree
Showing 32 changed files with 1,875 additions and 151 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 7 additions & 7 deletions packages/cbioportal-utils/src/oncokb/OncoKbUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -285,23 +285,23 @@ export function calculateOncoKbAvailableDataType(
annotations: IndicatorQueryResp[]
) {
// Always show oncogenicity icon as long as the annotation exists
const availableDataTypes = [];
const availableDataTypes = new Set<OncoKbCardDataType>();
if (annotations.length > 0) {
availableDataTypes.push(OncoKbCardDataType.BIOLOGICAL);
availableDataTypes.add(OncoKbCardDataType.BIOLOGICAL);
}
annotations.forEach(annotation => {
if (!!annotation.highestSensitiveLevel) {
availableDataTypes.push(OncoKbCardDataType.TXS);
availableDataTypes.add(OncoKbCardDataType.TXS);
}
if (!!annotation.highestResistanceLevel) {
availableDataTypes.push(OncoKbCardDataType.TXR);
availableDataTypes.add(OncoKbCardDataType.TXR);
}
if (!!annotation.highestPrognosticImplicationLevel) {
availableDataTypes.push(OncoKbCardDataType.PX);
availableDataTypes.add(OncoKbCardDataType.PX);
}
if (!!annotation.highestDiagnosticImplicationLevel) {
availableDataTypes.push(OncoKbCardDataType.DX);
availableDataTypes.add(OncoKbCardDataType.DX);
}
});
return _.uniq(availableDataTypes);
return Array.from(availableDataTypes);
}
25 changes: 25 additions & 0 deletions packages/react-mutation-mapper/src/component/column/Annotation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ function getDefaultTumorType(): string {
return 'Unknown';
}

const memoized: Map<string, IAnnotation> = new Map();
export function getAnnotationData(
mutation?: Mutation,
oncoKbCancerGenes?: RemoteData<CancerGene[] | Error | undefined>,
Expand All @@ -118,6 +119,27 @@ export function getAnnotationData(
let value: Partial<IAnnotation>;

if (mutation) {
var key = '';
const memoize =
!!oncoKbCancerGenes &&
oncoKbCancerGenes?.isComplete &&
!!hotspotData &&
hotspotData?.isComplete &&
!!myCancerGenomeData &&
!!oncoKbData &&
oncoKbData?.isComplete &&
!!civicGenes &&
civicGenes?.isComplete &&
!!civicVariants &&
civicVariants?.isComplete;
if (memoize) {
key = JSON.stringify(mutation) + !!usingPublicOncoKbInstance;
const val = memoized.get(key);
if (val) {
return val;
}
}

const entrezGeneId = resolveEntrezGeneId(mutation);

let oncoKbIndicator: IndicatorQueryResp | undefined;
Expand Down Expand Up @@ -238,6 +260,9 @@ export function getAnnotationData(
oncoKbIndicator: undefined,
};
}
if (memoize) {
memoized.set(key, value as any);
}
} else {
value = DEFAULT_ANNOTATION_DATA;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { DataFilter } from '../model/DataFilter';

export type CategoricalFilterValue = {
filterCondition: string;
filterString: string;
selections: Set<string>;
};

export type CategoricalFilter = DataFilter<CategoricalFilterValue>;
9 changes: 9 additions & 0 deletions packages/react-mutation-mapper/src/filter/NumericalFilter.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { DataFilter } from '../model/DataFilter';

export type NumericalFilterValue = {
lowerBound: number;
upperBound: number;
hideEmptyValues: boolean;
};

export type NumericalFilter = DataFilter<NumericalFilterValue>;
8 changes: 8 additions & 0 deletions packages/react-mutation-mapper/src/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,14 @@ export { MutationFilter } from './filter/MutationFilter';
export { OncoKbFilter } from './filter/OncoKbFilter';
export { PositionFilter } from './filter/PositionFilter';
export { ProteinImpactTypeFilter } from './filter/ProteinImpactTypeFilter';
export {
NumericalFilter,
NumericalFilterValue,
} from './filter/NumericalFilter';
export {
CategoricalFilter,
CategoricalFilterValue,
} from './filter/CategoricalFilter';

export { DataFilter, DataFilterType } from './model/DataFilter';
export { DataStore } from './model/DataStore';
Expand Down
7 changes: 6 additions & 1 deletion packages/react-mutation-mapper/src/util/FilterUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import { MutationFilter, MutationFilterValue } from '../filter/MutationFilter';
import { MutationStatusFilter } from '../filter/MutationStatusFilter';
import { PositionFilter } from '../filter/PositionFilter';
import { ProteinImpactTypeFilter } from '../filter/ProteinImpactTypeFilter';
import { NumericalFilterValue } from '../filter/NumericalFilter';
import { CategoricalFilterValue } from '../filter/CategoricalFilter';
import DataStore from '../model/DataStore';
import { DataFilter, DataFilterType } from '../model/DataFilter';
import { ApplyFilterFn } from '../model/FilterApplier';
Expand Down Expand Up @@ -206,7 +208,10 @@ export function groupDataByProteinImpactType(sortedFilteredData: any[]) {
}

export function onFilterOptionSelect(
selectedValues: string[],
selectedValues:
| string[]
| NumericalFilterValue[]
| CategoricalFilterValue[],
allValuesSelected: boolean,
dataStore: DataStore,
dataFilterType: string,
Expand Down
133 changes: 128 additions & 5 deletions src/pages/resultsView/ResultsViewPageStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -251,10 +251,31 @@ import oql_parser, {
import {
ANNOTATED_PROTEIN_IMPACT_FILTER_TYPE,
createAnnotatedProteinImpactTypeFilter,
createNumericalFilter,
createCategoricalFilter,
} from 'shared/lib/MutationUtils';
import ComplexKeyCounter from 'shared/lib/complexKeyDataStructures/ComplexKeyCounter';
import { chunkCalls } from 'cbioportal-utils';
import SampleSet from 'shared/lib/sampleDataStructures/SampleSet';
import {
MutationTableColumnType,
getTextForDataField,
} from 'shared/components/mutationTable/MutationTable';
import { getClonalValue } from 'shared/components/mutationTable/column/clonal/ClonalColumnFormatter';
import { getCancerCellFractionValue } from 'shared/components/mutationTable/column/cancerCellFraction/CancerCellFractionColumnFormatter';
import { getExpectedAltCopiesValue } from 'shared/components/mutationTable/column/expectedAltCopies/ExpectedAltCopiesColumnFormatter';
import TumorAlleleFreqColumnFormatter from 'shared/components/mutationTable/column/TumorAlleleFreqColumnFormatter';
import NormalAlleleFreqColumnFormatter from 'shared/components/mutationTable/column/NormalAlleleFreqColumnFormatter';
import ChromosomeColumnFormatter from 'shared/components/mutationTable/column/ChromosomeColumnFormatter';
import { getASCNMethodValue } from 'shared/components/mutationTable/column/ascnMethod/ASCNMethodColumnFormatter';
import SampleColumnFormatter from 'shared/components/mutationTable/column/SampleColumnFormatter';
import GeneColumnFormatter from 'shared/components/mutationTable/column/GeneColumnFormatter';
import ProteinChangeColumnFormatter from 'shared/components/mutationTable/column/ProteinChangeColumnFormatter';
import MutationTypeColumnFormatter from 'shared/components/mutationTable/column/MutationTypeColumnFormatter';
import VariantTypeColumnFormatter from 'shared/components/mutationTable/column/VariantTypeColumnFormatter';
import HgvsgColumnFormatter from 'shared/components/mutationTable/column/HgvsgColumnFormatter';
import ClinvarColumnFormatter from 'shared/components/mutationTable/column/ClinvarColumnFormatter';
import SignalColumnFormatter from 'shared/components/mutationTable/column/SignalColumnFormatter';

type Optional<T> =
| { isApplicable: true; value: T }
Expand Down Expand Up @@ -3449,16 +3470,118 @@ export class ResultsViewPageStore {
},
});

@computed get customDataFilterAppliers() {
return {
[ANNOTATED_PROTEIN_IMPACT_FILTER_TYPE]: createAnnotatedProteinImpactTypeFilter(
this.isPutativeDriver
),
[MutationTableColumnType.CLONAL]: createNumericalFilter(
(d: Mutation) => {
const val = getClonalValue(d);
return val ? +val : null;
}
),
[MutationTableColumnType.CANCER_CELL_FRACTION]: createNumericalFilter(
(d: Mutation) => {
const val = getCancerCellFractionValue(d);
return val ? +val : null;
}
),
[MutationTableColumnType.EXPECTED_ALT_COPIES]: createNumericalFilter(
(d: Mutation) => {
const val = getExpectedAltCopiesValue(d);
return val ? +val : null;
}
),
[MutationTableColumnType.TUMOR_ALLELE_FREQ]: createNumericalFilter(
(d: Mutation) =>
TumorAlleleFreqColumnFormatter.getSortValue([d])
),
[MutationTableColumnType.NORMAL_ALLELE_FREQ]: createNumericalFilter(
(d: Mutation) =>
NormalAlleleFreqColumnFormatter.getSortValue([d])
),
[MutationTableColumnType.REF_READS_N]: createNumericalFilter(
(d: Mutation) => d.normalRefCount
),
[MutationTableColumnType.VAR_READS_N]: createNumericalFilter(
(d: Mutation) => d.normalAltCount
),
[MutationTableColumnType.REF_READS]: createNumericalFilter(
(d: Mutation) => d.tumorRefCount
),
[MutationTableColumnType.VAR_READS]: createNumericalFilter(
(d: Mutation) => d.tumorAltCount
),
[MutationTableColumnType.START_POS]: createNumericalFilter(
(d: Mutation) => {
const val = getTextForDataField([d], 'startPosition');
return val ? +val : null;
}
),
[MutationTableColumnType.END_POS]: createNumericalFilter(
(d: Mutation) => {
const val = getTextForDataField([d], 'endPosition');
return val ? +val : null;
}
),
[MutationTableColumnType.SAMPLE_ID]: createCategoricalFilter(
(d: Mutation) => SampleColumnFormatter.getTextValue([d])
),
[MutationTableColumnType.GENE]: createCategoricalFilter(
(d: Mutation) => GeneColumnFormatter.getTextValue([d])
),
[MutationTableColumnType.PROTEIN_CHANGE]: createCategoricalFilter(
(d: Mutation) => ProteinChangeColumnFormatter.getTextValue([d])
),
[MutationTableColumnType.CHROMOSOME]: createCategoricalFilter(
(d: Mutation) => ChromosomeColumnFormatter.getData([d]) || ''
),
[MutationTableColumnType.REF_ALLELE]: createCategoricalFilter(
(d: Mutation) => getTextForDataField([d], 'referenceAllele')
),
[MutationTableColumnType.VAR_ALLELE]: createCategoricalFilter(
(d: Mutation) => getTextForDataField([d], 'variantAllele')
),
[MutationTableColumnType.MUTATION_TYPE]: createCategoricalFilter(
(d: Mutation) =>
MutationTypeColumnFormatter.getDisplayValue([d])
),
[MutationTableColumnType.VARIANT_TYPE]: createCategoricalFilter(
(d: Mutation) => VariantTypeColumnFormatter.getTextValue([d])
),
[MutationTableColumnType.CENTER]: createCategoricalFilter(
(d: Mutation) => getTextForDataField([d], 'center')
),
[MutationTableColumnType.HGVSG]: createCategoricalFilter(
(d: Mutation) => HgvsgColumnFormatter.download([d])
),
[MutationTableColumnType.ASCN_METHOD]: createCategoricalFilter(
(d: Mutation) => getASCNMethodValue(d)
),
[MutationTableColumnType.CLINVAR]: createCategoricalFilter(
(d: Mutation) =>
ClinvarColumnFormatter.download(
[d],
this.indexedVariantAnnotations
)
),
[MutationTableColumnType.SIGNAL]: createCategoricalFilter(
(d: Mutation) =>
SignalColumnFormatter.download(
[d],
this.indexedVariantAnnotations
)
),
};
}

public createMutationMapperStoreForSelectedGene(gene: Gene) {
const store = new ResultsViewMutationMapperStore(
AppConfig.serverConfig,
{
filterMutationsBySelectedTranscript: true,
filterAppliersOverride: {
[ANNOTATED_PROTEIN_IMPACT_FILTER_TYPE]: createAnnotatedProteinImpactTypeFilter(
this.isPutativeDriver
),
},
filterAppliersOverride: this.customDataFilterAppliers,
},
gene,
this.filteredSamples,
Expand Down
Loading

0 comments on commit 71fc949

Please sign in to comment.