def cutsite_read(ligation_sites, seq, qual):
    """Find ligation sites in a given sequence and return list of the fragmented
    sequence and quality.

    Parameters:
    -----------
    ligation_sites : re.Pattern
        Regex of all possible ligations according to the given enzymes.
    seq : str
        Sequence where to search for ligation_sites.
    qual : str
        Quality values of the sequence given.

    Returns:
    --------
    list of str
        List of string of the sequences. The split is made at the start of the
        ligation sites.
    list of str
        List of string of the qualities.

    Examples:
    ---------
    >>> cutsite_read(re.compile(r'GA.TA.TC'), "AAGAGTATTC", "FFF--FAFAF")
    (['AA', 'GAGTATTC'], ['FF', 'F--FAFAF'])
    """

    # Find the ligation sites.
    ligation_sites_list = []
    if ligation_sites.search(seq):
        ligation_sites_list = [
            site.start() for site in ligation_sites.finditer(seq)
        ]
    ligation_sites_list.append(len(seq))

    # Split the sequences on the ligation sites.
    seq_list = []
    qual_list = []
    left_site = 0
    for right_site in ligation_sites_list:
        seq_list.append(seq[left_site:right_site])
        qual_list.append(qual[left_site:right_site])
        left_site = right_site

    return seq_list, qual_list