def METHOD_NAME(
    exp_mat: np.ndarray,
    gene_names: Union[np.ndarray, list],
    archetypes: np.ndarray,
    gene: int,
    pval_threshold: float = 0,
):
    """Given a gene, find other genes which correlate well spatially.
    Args:
        exp_mat: expression matrix.
        gene_names: gene name list that associates with the rows of expression matrix.
        archetypes: the archetypes output of find_spatial_archetypes
        gene: the index of the gene to be queried
        pval_threshold: the pvalue returned from the pearsonr function
    Returns:
        a list of genes which are the best representatives of the archetype
    """
    # First find the archetype of the gene
    arch_corrs = np.array([])
    for archetype in range(len(archetypes)):
        arch_corrs = np.append(arch_corrs, pearsonr(exp_mat[gene, :], archetypes[archetype, :])[0])
    if np.max(arch_corrs) < 0.7:
        lm.main_warning("No significant correlation between the gene and the spatial archetypes was found.")
        return None
    archetype = np.argmax(arch_corrs)
    return get_genes_from_spatial_archetype(exp_mat, gene_names, archetypes, archetype, pval_threshold=pval_threshold)