def examine_seq(id, forms=None, n=None, guide=None, seq=None):
primes, comps = get_id_info(id)<EOL>if len(comps) == <NUM_LIT:0>:<EOL><INDENT>return None <EOL><DEDENT>if len(comps) > <NUM_LIT:1> or list(comps.values()) != [<NUM_LIT:1>]:<EOL><INDENT>raise ValueError("<STR_LIT>".format(seq.seq, seq.id))<EOL><DEDENT>c = int(list(comps.keys())[<NUM_LIT:0>])<EOL>guideprime, s, t = aq.canonical_form(primes)<EOL>nprime = {p: a for p, a in primes.items() if len(str(p)) <= <NUM_LIT:9>}<EOL>if (n is not None and nprime != n) or (guide is not None and guideprime != guide):<EOL><INDENT>print("<STR_LIT>".format(seq.seq if seq else None))<EOL>return None<EOL><DEDENT>return aq.mutation_possible(primes, c, forms)<EOL>
Query the FDB by ID to analyze if the corresponding number may mutate by assuming
    the composite is of the given `forms`, where `forms` is a list of `form`s as used by
    the mfaliquot.aliquot.composite_tau_lte function. The optional n and guide arguments
    are for error checking purposes.