perplexity=perplexity, theta=theta, iterations=iterations, random_seed=random_seed, verbose=verbose) tsne_results = tsne.t_sne_from_existing_distances(files_dir=tsne_cortex_folder, data_has_exageration=True, num_dims=num_dims, theta=theta, iterations=iterations, random_seed=random_seed, verbose=verbose, exe_dir=exe_dir) spike_info = preproc_kilo.generate_spike_info_from_full_tsne( kilosort_folder=kilosort_folder_denoised, tsne_folder=tsne_cortex_folder) # OR Load previously run t-sne tsne_results = tsne_io.load_tsne_result(files_dir=tsne_cortex_folder) # and previously generated spike_info spike_info = pd.read_pickle(join(tsne_cortex_folder, 'spike_info.df')) # Have a look viz.plot_tsne_of_spikes(spike_info=spike_info, legent_on=False) # Update the original spike info (created after just cleaning) with the new spike_info information from manually sorting # on the t-sne spike_info_after_cleaning = preproc_kilo.generate_spike_info_after_cleaning( kilosort_folder_denoised) spike_info_cortex_sorted = spike_info
cluster_info = tsne_cl.create_cluster_info_from_kilosort_spike_templates(join(base_folder, 'cluster_info.pkl'), spike_templates_clean) labels_dict = pf.generate_labels_dict_from_cluster_info_dataframe(cluster_info=cluster_info) markers = ['.', '*', 'o', '>', '<', '_', ','] labeled_sizes = range(20, 100, 20) pf.plot_tsne(tsne.T, cm=plt.cm.prism, labels_dict=labels_dict, legent_on=False, markers=None, labeled_sizes=None) fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.scatter(tsne[:, 0], tsne[:, 1], tsne[:, 2], zdir='z', s=20, c='b', depthshade=True) pf.make_video_of_tsne_iterations(iterations=3000, video_dir=files_dir, data_file_name='interim_{:0>6}.dat', video_file_name='tsne_video.mp4', figsize=(15, 15), dpi=200, fps=30, labels_dict=labels_dict, cm=plt.cm.prism, label_name='Label', legent_on=False, labeled_sizes=None, markers=None, max_screen=True) spike_info = preproc.generate_spike_info_from_full_tsne(base_folder, files_dir)
verbose = 2 # This is a full T-sne (calculates distances in GPU and the T-sne embedding in CPU) tsne_results = tsne.t_sne(template_features, files_dir=tsne_folder, exe_dir=tsne_exe_dir, num_dims=num_dims, perplexity=perplexity, theta=theta, iterations=iterations, random_seed=random_seed, verbose=verbose) # OR load previously run t-sne tsne_results = tsne_io.load_tsne_result(files_dir=tsne_folder) # </editor-fold> # ---------------------------------------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------------------------------------- # <editor-fold desc = STEP 4: HAVE A LOOK AT THE T-SNE DATA # a) Make a spike_info from the t-sne data (will be used later in the t-sne sorting gui) spike_info = preproc_kilo.generate_spike_info_from_full_tsne(kilosort_folder=kilosort_folder, tsne_folder=tsne_folder) # OR load a previously generated spike_info spike_info = pd.read_pickle(join(tsne_folder, 'spike_info.df')) # and have a look viz.plot_tsne_of_spikes(spike_info=spike_info, legent_on=False) # </editor-fold> # ----------------------------------------------------------------------------------------------------------------------
num_dims = 2 perplexity = 100 theta = 0.3 iterations = 4000 random_seed = 1 verbose = 3 tsne_results = tsne.t_sne(template_features_matrix, files_dir=tsne_folder, num_dims=num_dims, perplexity=perplexity, theta=theta, iterations=iterations, random_seed=random_seed, verbose=verbose) spike_info = preproc_kilo.generate_spike_info_from_full_tsne( kilosort_folder=kilosort_folder, tsne_folder=tsne_folder) # Run t-sne again with different parameters starting from the already calculated hd distances num_dims = 2 perplexity = 100 theta = 0.3 iterations = 4000 random_seed = 1 verbose = 3 tsne_results = tsne.t_sne_from_existing_distances(files_dir=tsne_folder, data_has_exageration=True, num_dims=num_dims, theta=theta, iterations=iterations, random_seed=random_seed,