def get_short_psubclass_descriptor(psubclass):
    """Generates a short descriptor of the subclass

    Args:
        psubclass (string): protein classification subclass

    Raises:
        Exception: unknown subclass given

    Returns:
        string: short subclass descriptor
    """
    # derive a shorter psubclass for viewing on ucsc browser
    if psubclass == 'known_nterm_novel_splice_known_cterm':
        return 'kn_ns_kc'
    elif psubclass == 'known_nterm_known_splice_known_cterm':
        return 'kn_ks_kc'
    elif psubclass == 'known_nterm_combo_splice_known_cterm':
        return 'kn_cs_kc'
    elif psubclass == 'known_nterm_novel_splice_novel_cterm':
        return 'kn_ns_nc'
    elif psubclass == 'known_nterm_combo_splice_novel_cterm':
        return 'kn_cs_nc'
    elif psubclass == 'known_nterm_known_splice_novel_cterm':
        return 'kn_ks_nc'
    elif psubclass == 'novel_nterm_known_splice_known_cterm':
        return 'nn_ks_kc'
    elif psubclass == 'mono-exon':
        return 'mono'
    elif psubclass == 'ntrunc':
        return 'ntrunc'
    elif psubclass == 'combo_nterm_cterm':
        return 'cnc'
    elif psubclass == 'novel_nterm_known_splice_novel_cterm':
        return 'nn_ks_nc'
    elif psubclass == 'novel_nterm_novel_splice_known_cterm':
        return 'nn_ns_kc'
    elif psubclass == 'novel_nterm_combo_splice_novel_cterm':
        return 'nn_cs_nc'
    elif psubclass == 'novel_nterm_combo_splice_known_cterm':
        return 'nn_cs_kc'
    elif psubclass == 'novel_nterm_novel_splice_novel_cterm':
        return 'nn_ns_nc'
    elif psubclass == 'multi-exon':
        return 'multi'
    elif psubclass == 'ctrunc':
        return 'ctrunc'
    else:
        raise Exception('Invalid psubclass:' + psubclass)