import { RGBAColor, shapeToSvg } from 'oncoprintjs';
import React from 'react';
import { Modal } from 'react-bootstrap';
// @ts-ignore
import openImage from "../images/toolbar/edit.svg";
// @ts-ignore
import layoutImage from "../images/toolbar/layout-cose.svg";
// @ts-ignore
import savePNGImage from "../images/toolbar/save_png.svg";
// @ts-ignore
import saveSVGImage from "../images/toolbar/save_svg.svg";
import { EModalType } from '../ui/react-pathway-mapper';
// @ts-ignore
const addSelImage = require("../images/toolbar/add-selected.svg");
// @ts-ignore
const addAllImage = require("../images/toolbar/add-all.svg");
interface ICBioHelpModalProps{
show: boolean;
handleClose: (modalId: EModalType) => void;
patientView ?: boolean;
}
// https://github.com/cBioPortal/cbioportal-frontend/blob/29a93c5e992ca1affd3d027355015164ae3602bd/src/shared/lib/Colors.ts
const CNA_COLOR_AMP = '#ff0000';
const CNA_COLOR_HOMDEL = '#0000ff';
const DEFAULT_GREY = '#bebebe';
const MUT_COLOR_MISSENSE = '#008000';
const MUT_COLOR_MISSENSE_PASSENGER = '#53D400';
const MUT_COLOR_INFRAME = '#993404';
const MUT_COLOR_INFRAME_PASSENGER = '#a68028';
const MUT_COLOR_TRUNC = '#000000';
const MUT_COLOR_TRUNC_PASSENGER = '#708090';
const MUT_COLOR_FUSION = '#8B00C9';
const MUT_COLOR_PROMOTER = '#00B7CE';
const MUT_COLOR_OTHER = '#cf58bc';
const MUT_COLOR_GERMLINE = '#FFFFFF';
export function hexToRGBA(str: string): [number, number, number, number] {
const r = parseInt(str[1] + str[2], 16);
const g = parseInt(str[3] + str[4], 16);
const b = parseInt(str[5] + str[6], 16);
return [r, g, b, 1];
}
// always used shape
const defaultShape = {
type: 'rectangle',
fill: hexToRGBA(DEFAULT_GREY),
x: 0,
y: 0,
width: 6,
height: 20,
stroke: [0,0,0,0] as RGBAColor,
'stroke-width': 0
};
const labels = [
'Amplification',
'Deep Deletion',
'Fusion',
'Germline Mutation',
'Missense Mutation (putative driver)',
'Missense Mutation (unknown significance)',
'Other Mutation',
'Promoter Mutation',
'Truncating Mutation (putative driver)',
'Truncating Mutation (unknown significance)',
'Inframe Mutation (putative driver)',
'Inframe Mutation (unknown significance)'
];
// conditional shapes
const shapeBank = [
{
type: 'rectangle',
fill: hexToRGBA(CNA_COLOR_AMP),
x: 0,
y: 0,
width: 6,
height: 20
},
{
type: 'rectangle',
fill: hexToRGBA(CNA_COLOR_HOMDEL),
x: 0,
y: 0,
width: 6,
height: 20
},
{
type: 'rectangle',
fill: hexToRGBA(MUT_COLOR_FUSION),
x: 0,
y: 4,
width: 6,
height: 12
},
{
type: 'rectangle',
fill: hexToRGBA(MUT_COLOR_GERMLINE),
x: 0,
y: 8.75,
width: 6,
height: 1.6
},
{
type: 'rectangle',
fill: hexToRGBA(MUT_COLOR_MISSENSE),
x: 0,
y: 6.66,
width: 6,
height: 6.66
},
{
type: 'rectangle',
fill: hexToRGBA(MUT_COLOR_MISSENSE_PASSENGER),
x: 0,
y: 6.66,
width: 6,
height: 6.66
},
{
type: 'rectangle',
fill: hexToRGBA(MUT_COLOR_OTHER),
x: 0,
y: 6.66,
width: 6,
height: 6.66
},
{
type: 'rectangle',
fill: hexToRGBA(MUT_COLOR_PROMOTER),
x: 0,
y: 6.66,
width: 6,
height: 6.66
},
{
type: 'rectangle',
fill: hexToRGBA(MUT_COLOR_TRUNC),
x: 0,
y: 6.66,
width: 6,
height: 6.66
},
{
type: 'rectangle',
fill: hexToRGBA(MUT_COLOR_TRUNC_PASSENGER),
x: 0,
y: 6.66,
width: 6,
height: 6.66
},
{
type: 'rectangle',
fill: hexToRGBA(MUT_COLOR_INFRAME),
x: 0,
y: 6.66,
width: 6,
height: 6.66
},
{
type: 'rectangle',
fill: hexToRGBA(MUT_COLOR_INFRAME_PASSENGER),
x: 0,
y: 6.66,
width: 6,
height: 6.66
},
];
export default class CBioHelpModal extends React.Component
PathwayMapper shows you your genes of interest with the alteration frequencies of selected genetic profiles of the chosen study overlaid on a TCGA pathway using a white to red color scale (the more frequently altered a gene is, the more red it's shown). All available TCGA pathways are ranked with the aim to choose the pathway that matches your interest the most. By default we display the pathway with highest ranking with the default ranking options but you may look at your genes of interest in the context of other pathways as well by choosing from the pathway table.
Refer to the documentation here for the notation used.
To search for a particular pathway of your interest, use the search field on top of the pathway table. To switch to another pathway, click on the button in the associated row of the pathway table. Ranking criteria might be changed by changing the options at the bottom of the table.
The buttons on top of the pathway are:
Save as PNG
Save as SVG
Perform layout: Layout is recalculated taking current node positions into account
Add selected genes to query: You may select additional genes from the pathway by left clicking (Shift + left click to add more genes)
Add all valid genes to query: All valid gene symbols will be added to the query; others will be ignored
Edit pathway: Edit both the topology and the geometry of the current pathway with the full blown PathwayMapper editor
PathwayMapper shows you your genes of interest with the mutation types, copy number alterations and fusions of selected genetic profiles of the chosen study overlaid on a TCGA pathway using the OncoPrint color scheme. All available TCGA pathways are ranked with the aim to choose the pathway that matches your interest the most. By default we display the pathway with the highest number of genes of interest matching the ones in a pathway but you may look at your genes of interest in the context of other pathways as well by choosing from the pathway table.
Refer to the documentation here for the notation used.
Genetic alteration legend:
Putative driver and unknown significance annotations are based on data from OncoKB and CancerHotspots.org.
| Save as PNG | |
| Save as SVG | |
| Perform layout: Layout is recalculated taking current node positions into account |