def _genetate_feature_list(channel_mappings: list):
    """
    Generate a list of features from a list of ChannelMap objects (see data.panel.ChannelMap). By default
    the ChannelMap marker value is used, but if missing will use channel value instead.

    Parameters
    ----------
    channel_mappings: list
        List of ChannelMap objects

    Returns
    -------
    List
    """
    features = list()
    for cm in channel_mappings:
        if cm.marker:
            features.append(cm.marker)
        else:
            features.append(cm.channel)
    return features