def get_feature_names():
    """
	feature names for the fixed peptide length feature vectors
	"""
    aminos = ['A', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'K', 'M', 'N', 'P',
        'Q', 'R', 'S', 'T', 'V', 'W', 'Y']
    names = []
    for a in aminos:
        names.append('Ib_' + a)
    names.append('sumIbaG')
    names.append('meanIbwikiG')
    names.append('sumIywaG')
    names.append('meanIywikiG')
    names += ['pmz', 'peplen', 'ionnumber', 'ionnumber_rel']
    for c in ['aG', 'wikiG', 'mz', 'bas', 'heli', 'hydro', 'pI']:
        names.append('sum_' + c)
    for c in ['mz', 'bas', 'heli', 'hydro', 'pI']:
        names.append('mean_' + c)
    for c in ['max_{}', 'min_{}', 'max{}_b', 'min{}_b', 'max{}_y', 'min{}_y']:
        for b in ['bas', 'heli', 'hydro', 'pI']:
            names.append(c.format(b))
    names.append('mz_ion')
    names.append('mz_ion_other')
    names.append('mean_mz_ion')
    names.append('mean_mz_ion_other')
    for c in ['bas', 'heli', 'hydro', 'pI']:
        names.append('{}_ion'.format(c))
        names.append('{}_ion_other'.format(c))
        names.append('{}_ion_minus_ion_other'.format(c))
    for c in ['plus_cleave{}', 'times_cleave{}', 'minus1_cleave{}',
        'minus2_cleave{}', 'bsum{}', 'ysum{}']:
        for b in ['bas', 'heli', 'hydro', 'pI']:
            names.append(c.format(b))
    for pos in ['0', '1', '-2', '-1']:
        for c in ['mz', 'bas', 'heli', 'hydro', 'pI', 'wikiG', 'P', 'D',
            'E', 'K', 'R']:
            names.append('loc_' + pos + '_' + c)
    for pos in ['i', 'i+1']:
        for c in ['wikiG', 'P', 'D', 'E', 'K', 'R']:
            names.append('loc_' + pos + '_' + c)
    for c in ['bas', 'heli', 'hydro', 'pI', 'mz']:
        for pos in ['i', 'i-1', 'i+1', 'i+2']:
            names.append('loc_' + pos + '_' + c)
    names.append('charge')
    return names
