cBioPortal / cbioportal

cBioPortal for Cancer Genomics
https://cbioportal.org
GNU Affero General Public License v3.0
648 stars 505 forks source link

Revisit oncoprinter implementation #9500

Closed dippindots closed 2 years ago

dippindots commented 2 years ago

There are two existing issues that need to be investigated

dippindots commented 2 years ago

Oncoprinter: Protein start position and protein end position are calculated by our util function: getProteinPositionFromProteinChange. getProteinPositionFromProteinChange function takes a proteinChange string and parse it, then get protein start position and protein end position from it.

Results view Oncoprint: data is coming from mutations endpoint, and data should come from mutations endpoint

e.g. this mutation

image
dippindots commented 2 years ago

Logic for mutation type mapping from results view oncoprint to oncoprinter:

    switch (type) {
        case 'missense_mutation':
        case 'missense':
        case 'missense_variant':
            ret = 'missense';
            break;
        case 'frame_shift_ins':
        case 'frame_shift_del':
        case 'frameshift':
        case 'frameshift_deletion':
        case 'frameshift_insertion':
        case 'de_novo_start_outofframe':
        case 'frameshift_variant':
            ret = 'frameshift';
            break;
        case 'nonsense_mutation':
        case 'nonsense':
        case 'stopgain_snv':
            ret = 'nonsense';
            break;
        case 'splice_site':
        case 'splice':
        case 'splice site':
        case 'splicing':
        case 'splice_site_snp':
        case 'splice_site_del':
        case 'splice_site_indel':
        case 'splice_region':
            ret = 'splice';
            break;
        case 'translation_start_site':
        case 'start_codon_snp':
        case 'start_codon_del':
            ret = 'nonstart';
            break;
        case 'nonstop_mutation':
            ret = 'nonstop';
            break;
        case 'fusion':
            ret = 'fusion';
            break;
        case 'in_frame_del':
        case 'in_frame_ins':
        case 'in_frame_deletion':
        case 'in_frame_insertion':
        case 'indel':
        case 'nonframeshift_deletion':
        case 'nonframeshift':
        case 'nonframeshift insertion':
        case 'nonframeshift_insertion':
            ret = 'inframe';
            break;
        default:
            ret = 'other';
            break;
    }
dippindots commented 2 years ago

Close this and open related issues: https://github.com/genome-nexus/genome-nexus/issues/612 cBioPortal/icebox#501 cBioPortal/icebox#330