def apply_downsampling(seq, step, filter_global=False, filter_local=False, **kwargs):
    """ Apply Down Samplings
    Args.
    -----
    - seq  : list [e.g. np.ndarray(), pd.DataFrame]
    - step : integer, Spaceing between values
    
    Return.
    -------
    - lsit of donwsampled `seq`
    """
    seq_list = []
    # Apply filters [whole sequence]
    if not isinstance(filter_global, bool):
        seq = filter_global(seq, **kwargs)
    for start in range(step):
        if not isinstance(filter_local, bool):
            # Apply local filter
            seq_new = filter_local(seq, start, step=step, **kwargs)
        else:
            seq_new = seq[start::step]
        seq_list.append(seq_new)
    return seq_list