Need help to turn more efficient (if possible) a string check and cleaner python snippet

I have this function:

def check_and_clean_sequence(sequence, alphabet):
    """
    Function to check and clean up all umbigous bases in a sequence.
    Ambigous bases are bases that are not in the sequence
    alphabet, ie. 'ACGT' for DNA sequences.
    
    Inputs:
    
        sequence - a string representing a DNA sequence.
    
    Outputs:
    
        cleaned_sequence - cleaned sequence or a string.
    """    
    if set(sequence).issubset('ACGT):
        return sequence
    else:
        return cleaning_ambiguous_bases(sequence)
    
def cleaning_ambiguous_bases(seq):
    """
    Function to clean up all umbigous bases in a sequence.
    Ambigous bases are bases that are not in the sequence
    alphabet, ie. 'ACGT' for DNA sequences.
    
    Inputs:
    
        sequence - a string representing a DNA sequence.
    
    Outputs:
    
        integer - a new clean up string representing a DNA sequence
                  without any ambiguous characteres.
    """
    # compile the regex with all ambiguous bases
    pat = re.compile(r'(NRYWXSKM)')
    # look for the ambiguous bases and replace by
    # nothing
    new_seq = re.sub(pat,  '',    seq)
    return new_seq

The performance in jupyter notebook with timeit is around:

%timeit check_sequence(seq, iupac_dna)
200 ms ± 436 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)

This was calculated with a DNA sequence with 5539776 pb or 5539.776 kpb.
The function receive a big string and check if there are any characters that
are not in the allowed alphabet (in the case the IUPAC DNA = ‘ACGT’).
If the sequence has they are cleaned up and the function returns a new sequence,
otherwise return the original one.
There are any tip or trick to improve this time?
Thank you all!
Paulo