def __init__(self,
              session_id,
              params,
              count_type='rate',
              anat_region='all'):
     if count_type == 'binned':
         bw = params['binwidth']
         self.spike_data = np.load(gen_params['spike_counts_dir'] +
                                   '%0.0fms/%s_%0.0fms.p' %
                                   (bw * 1000, session_id, bw * 1000),
                                   allow_pickle=True)
     elif count_type == 'rate':
         sigma = params['sigma']
         dt = params['dt']
         # If dt is a multiple of 50ms, we subsample
         assert (((dt * 100) % (0.05 * 100)) == 0),\
             ValueError('Please specify a dt that is a multiple of 50ms')
         self.spike_data = np.load(gen_params['kernel_rates_dir'] +
                                   '%0.0fms_sigma/%s.p' %
                                   (sigma * 1000, session_id),
                                   allow_pickle=True)
         self.dt = dt
     self.cell_ids = sorted(self.spike_data['cells'])
     self.session_id = self.spike_data['session']
     self.count_type = count_type
     self.anat_region = anat_region
     self.params = params
     # anat_region is either 'all' or a specific area
     if anat_region is not 'all':
         area_info = load_pickle_file('../general_params/area_shank_info.p')
         relevant_shanks = area_info[session_id][anat_region]
         relevant_cells = [
             x for x in self.cell_ids if x[0] in relevant_shanks
         ]
         self.cell_ids = relevant_cells
import time, datetime
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
from ripser import ripser as tda

sd = int((time.time() % 1) * (2**31))
np.random.seed(sd)
curr_date = datetime.datetime.now().strftime('%Y_%m_%d') + '_'

gen_fn_dir = os.path.abspath('..') + '/shared_scripts'
sys.path.append(gen_fn_dir)

import general_file_fns as gff

gen_params = gff.load_pickle_file('../general_params/general_params.p')

from binned_spikes_class import spike_counts
from dim_red_fns import run_dim_red
from scipy.spatial.distance import pdist
from sklearn import neighbors

save_dir = gff.return_dir(gen_params['results_dir'] + '2019_03_22_tda/')

plot_barcode = True
cmd_line = False
# if thrsh is True then we threshold out low density points (nt-TDA in the
# paper)
if cmd_line:
    session = sys.argv[1]
    state = sys.argv[2]
import numpy as np
import numpy.linalg as la
import sys, os
import time, datetime

gen_fn_dir = os.path.abspath('..') + '/shared_scripts'
sys.path.append(gen_fn_dir)

import general_file_fns as gff
import data_read_fns as drf
import rate_functions as rf

# Paths to save the data are in this dict. If you haven't already, edit
# general_params/make_general_params_file.py to set the paths you want
# and run it to generate general_params.p
gen_params = gff.load_pickle_file('../general_params/general_params.p')

session = 'Mouse28-140313'

make_processed_files = True
make_rates = True

if make_processed_files:
    data_path = gen_params['raw_data_dir'] + session + '/'
    params = {
        'session': 'Mouse28-140313',
        'data_path': data_path,
        'eeg_sampling_rate': 1250.,
        'spike_sampling_interval': 1.0 / (20e3)
    }
    data = drf.gather_session_spike_info(params)