Esempio n. 1
0
def test_lda_metrics():

    all_pcs1, all_labels1 = create_ground_truth_pc_distributions([1,-1],[1000, 1000])
    all_pcs2, all_labels2 = create_ground_truth_pc_distributions([1,-2],[1000, 1000]) # increase distance between clusters

    d_prime1 = lda_metrics(all_pcs1, all_labels1, 0)
    d_prime2 = lda_metrics(all_pcs2, all_labels2, 0)

    assert d_prime1 < d_prime2
Esempio n. 2
0
def test_nearest_neighbors_metrics():

    all_pcs1, all_labels1 = create_ground_truth_pc_distributions([1,-1],[1000, 1000])
    all_pcs2, all_labels2 = create_ground_truth_pc_distributions([1,-2],[1000, 1000]) # increase distance between clusters

    hit_rate1, miss_rate1 = nearest_neighbors_metrics(all_pcs1, all_labels1, 0, 1000, 3)
    hit_rate2, miss_rate2 = nearest_neighbors_metrics(all_pcs2, all_labels2, 0, 1000, 3)

    assert hit_rate1 < hit_rate2
    assert miss_rate1 > miss_rate2
Esempio n. 3
0
def test_mahalanobis_metrics():

    all_pcs1, all_labels1 = create_ground_truth_pc_distributions([1,-1],[1000, 1000])
    all_pcs2, all_labels2 = create_ground_truth_pc_distributions([1,-2],[1000, 1000]) # increase distance between clusters

    isolation_distance1, l_ratio1 = mahalanobis_metrics(all_pcs1, all_labels1, 0)
    isolation_distance2, l_ratio2 = mahalanobis_metrics(all_pcs2, all_labels2, 0)

    assert isolation_distance1 < isolation_distance2
    assert l_ratio1 > l_ratio2
Esempio n. 4
0
def test_calculate_pc_metrics():
    num_channels_to_compare = 6
    total_units = 4
    center_locs = np.array(
        [[1, -1, 10, 20], [10, 20, 30, 10], [2, 9, 1, 4], [4, -2, 4, -1], [-1, 2, 4, 3], [10, 80, 3, 17]])
    n_spikes = [1000, 1000, 500, 20]
    pc_features, spike_clusters = create_ground_truth_pc_distributions(center_locs, n_spikes)
    pc_feature_ind = np.tile(np.arange(0, num_channels_to_compare), (total_units, 1))

    max_spikes_for_cluster = 500
    spikes_for_nn = 1000
    n_neighbors = 3
    channel_locations = np.zeros((num_channels_to_compare, 2))
    channel_locations[:, 1] = np.arange(0, num_channels_to_compare)

    isolation_distances, l_ratios, d_primes, nn_hit_rates, nn_miss_rates = \
        calculate_pc_metrics(spike_clusters,
                             total_units,
                             pc_features,
                             pc_feature_ind,
                             num_channels_to_compare,
                             max_spikes_for_cluster,
                             spikes_for_nn,
                             n_neighbors,
                             channel_locations,
                             verbose=False)

    assert np.sum(np.isnan(isolation_distances)) == 0
    assert np.sum(np.isnan(l_ratios)) == 0
    assert np.sum(np.isnan(d_primes)) == 0
    assert np.sum(np.isnan(nn_hit_rates)) == 0
    assert np.sum(np.isnan(nn_miss_rates)) == 0
Esempio n. 5
0
def test_calculate_silhouette_score():
    pc_features, spike_clusters = create_ground_truth_pc_distributions([1, -1, 10, 20], [1000, 1000, 500, 20])
    pc_feature_ind = np.zeros((4, 1), dtype='int')
    total_units = 4
    pc_features = np.expand_dims(pc_features, axis=2)

    ss = calculate_silhouette_score(spike_clusters,
                                    total_units,
                                    pc_features,
                                    pc_feature_ind,
                                    1000,
                                    verbose=False)

    assert np.sum(np.isnan(ss)) == 0
Esempio n. 6
0
def test_calculate_pc_metrics():

    pc_features, spike_clusters = create_ground_truth_pc_distributions([1,-1, 10, 20],[1000, 1000, 500, 20])
    pc_feature_ind = np.zeros((4,1),dtype='int')
    total_units = 4
    pc_features = np.expand_dims(pc_features, axis=2)

    isolation_distances, l_ratios, d_primes, nn_hit_rates, nn_miss_rates = \
            calculate_pc_metrics(spike_clusters,
                         total_units,
                         pc_features,
                         pc_feature_ind,
                         1,
                         500,
                         1000,
                         3,
                         verbose=False)

    assert np.sum(np.isnan(isolation_distances)) == 0
    assert np.sum(np.isnan(l_ratios)) == 0
    assert np.sum(np.isnan(d_primes)) == 0
    assert np.sum(np.isnan(nn_hit_rates)) == 0
    assert np.sum(np.isnan(nn_miss_rates)) == 0