From 4331438da6d930eed7d900c9781ebe9212353298 Mon Sep 17 00:00:00 2001 From: Marius Pachitariu Date: Fri, 4 May 2018 13:33:17 +0100 Subject: [PATCH] initial commit --- .gitattributes | 17 + .gitignore | 48 ++ CUDA/mexGPUall.m | 15 + CUDA/mexMPmuFEAT.cu | 426 ++++++++++++++++++ CUDA/mexMPregMU.cu | 322 +++++++++++++ CUDA/mexWtW2.cu | 114 +++++ CUDA/mex_CUDA_glnxa64.xml | 75 +++ CUDA/mex_CUDA_win64.xml | 198 ++++++++ Docs/phy_installation_with_templates.txt | 16 + Docs/readme_mac.txt | 52 +++ Docs/readme_win_linux.txt | 48 ++ FwBwAddon/assembleBigDATA.m | 83 ++++ FwBwAddon/configFileBench384.m | 75 +++ FwBwAddon/driftTopPCs.m | 35 ++ FwBwAddon/extractPCfeatures0.m | 85 ++++ FwBwAddon/extractPCfromSnippets.m | 44 ++ FwBwAddon/fwbwClustering.m | 165 +++++++ FwBwAddon/get_SpikeSample.m | 20 + FwBwAddon/initializeW.m | 14 + FwBwAddon/isolated_peaks.m | 24 + FwBwAddon/isolated_peaks_new.m | 24 + FwBwAddon/makeBatches.m | 7 + FwBwAddon/masterFwBw.m | 45 ++ FwBwAddon/mexClustering.cu | 260 +++++++++++ .../neuropixPhase3A_kilosortChanMap_385.mat | Bin 0 -> 2013 bytes FwBwAddon/preprocessDataSub.m | 210 +++++++++ configFiles/PCspikes.mat | Bin 0 -> 918 bytes configFiles/PCspikes2.mat | Bin 0 -> 14090 bytes configFiles/StandardConfig_MOVEME.m | 67 +++ configFiles/createChannelMapFile.m | 46 ++ driftCorrection/clusterAndDriftCorrection.m | 143 ++++++ driftCorrection/collectRawClips.m | 253 +++++++++++ driftCorrection/get_Uupdown.m | 14 + driftCorrection/shift_data.m | 7 + driftCorrection/shift_matrix.m | 11 + eMouse/benchmark_simulation.m | 57 +++ eMouse/compareClustering2.m | 141 ++++++ eMouse/config_eMouse.m | 65 +++ eMouse/make_eMouseChannelMap.m | 47 ++ eMouse/make_eMouseData.m | 105 +++++ eMouse/master_eMouse.m | 64 +++ eMouse/readme_eMouse.txt | 3 + eMouse/simulation_parameters.mat | Bin 0 -> 688749 bytes finalPass/cpuMPmuFEAT.m | 79 ++++ finalPass/getWtW2.m | 23 + finalPass/rezToPhy.m | 122 +++++ fitTemplates.m | 243 ++++++++++ fullMPMU.m | 273 +++++++++++ initialize/merge_spikes0.m | 25 + initialize/optimizePeaks.m | 152 +++++++ initialize/reduce_clusters0.m | 31 ++ licence.txt | 339 ++++++++++++++ mainLoop/alignW.m | 20 + mainLoop/alignWU.m | 31 ++ mainLoop/decompose_dWU.m | 38 ++ mainLoop/get_svds.m | 27 ++ mainLoop/initialize_waves0.m | 77 ++++ mainLoop/merge_spikes_in.m | 35 ++ mainLoop/mexMPregMUcpu.m | 49 ++ mainLoop/reduce_clusters.m | 35 ++ mainLoop/update_params.m | 52 +++ mainLoop/zeroOutKcoords.m | 39 ++ master_file_example_MOVEME.m | 34 ++ merge_posthoc2.m | 122 +++++ mergesplits/distance_betwxt.m | 21 + mergesplits/merging_score.m | 24 + mergesplits/pairwise_dists.m | 17 + mergesplits/replace_clusters.m | 90 ++++ mergesplits/split_clust.m | 78 ++++ preProcess/convertOpenEphysToRawBInary.m | 71 +++ preProcess/get_PCproj.m | 18 + preProcess/get_isolated.m | 29 ++ preProcess/isolated_peaks.m | 12 + preProcess/whiteningLocal.m | 14 + preprocessData.m | 303 +++++++++++++ tests/gather_mean_spikes.m | 81 ++++ tests/gather_raw_mean_spikes.m | 92 ++++ tests/plotPCcoefs.m | 4 + tests/plot_final_waveforms.m | 79 ++++ tests/plot_waveforms.m | 13 + tests/plot_waveforms2.m | 92 ++++ tests/plots_of_template_coefficients.m | 67 +++ tests/testCodeFromPhy.m | 41 ++ utils/gather_try.m | 6 + utils/getOr.m | 26 ++ utils/my_conv.m | 20 + utils/my_conv2.m | 55 +++ utils/my_inv.m | 7 + utils/my_min.m | 39 ++ utils/my_sum.m | 39 ++ utils/normc.m | 3 + utils/sq.m | 4 + 92 files changed, 6636 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 CUDA/mexGPUall.m create mode 100644 CUDA/mexMPmuFEAT.cu create mode 100644 CUDA/mexMPregMU.cu create mode 100644 CUDA/mexWtW2.cu create mode 100644 CUDA/mex_CUDA_glnxa64.xml create mode 100644 CUDA/mex_CUDA_win64.xml create mode 100644 Docs/phy_installation_with_templates.txt create mode 100644 Docs/readme_mac.txt create mode 100644 Docs/readme_win_linux.txt create mode 100644 FwBwAddon/assembleBigDATA.m create mode 100644 FwBwAddon/configFileBench384.m create mode 100644 FwBwAddon/driftTopPCs.m create mode 100644 FwBwAddon/extractPCfeatures0.m create mode 100644 FwBwAddon/extractPCfromSnippets.m create mode 100644 FwBwAddon/fwbwClustering.m create mode 100644 FwBwAddon/get_SpikeSample.m create mode 100644 FwBwAddon/initializeW.m create mode 100644 FwBwAddon/isolated_peaks.m create mode 100644 FwBwAddon/isolated_peaks_new.m create mode 100644 FwBwAddon/makeBatches.m create mode 100644 FwBwAddon/masterFwBw.m create mode 100644 FwBwAddon/mexClustering.cu create mode 100644 FwBwAddon/neuropixPhase3A_kilosortChanMap_385.mat create mode 100644 FwBwAddon/preprocessDataSub.m create mode 100644 configFiles/PCspikes.mat create mode 100644 configFiles/PCspikes2.mat create mode 100644 configFiles/StandardConfig_MOVEME.m create mode 100644 configFiles/createChannelMapFile.m create mode 100644 driftCorrection/clusterAndDriftCorrection.m create mode 100644 driftCorrection/collectRawClips.m create mode 100644 driftCorrection/get_Uupdown.m create mode 100644 driftCorrection/shift_data.m create mode 100644 driftCorrection/shift_matrix.m create mode 100644 eMouse/benchmark_simulation.m create mode 100644 eMouse/compareClustering2.m create mode 100644 eMouse/config_eMouse.m create mode 100644 eMouse/make_eMouseChannelMap.m create mode 100644 eMouse/make_eMouseData.m create mode 100644 eMouse/master_eMouse.m create mode 100644 eMouse/readme_eMouse.txt create mode 100644 eMouse/simulation_parameters.mat create mode 100644 finalPass/cpuMPmuFEAT.m create mode 100644 finalPass/getWtW2.m create mode 100644 finalPass/rezToPhy.m create mode 100644 fitTemplates.m create mode 100644 fullMPMU.m create mode 100644 initialize/merge_spikes0.m create mode 100644 initialize/optimizePeaks.m create mode 100644 initialize/reduce_clusters0.m create mode 100644 licence.txt create mode 100644 mainLoop/alignW.m create mode 100644 mainLoop/alignWU.m create mode 100644 mainLoop/decompose_dWU.m create mode 100644 mainLoop/get_svds.m create mode 100644 mainLoop/initialize_waves0.m create mode 100644 mainLoop/merge_spikes_in.m create mode 100644 mainLoop/mexMPregMUcpu.m create mode 100644 mainLoop/reduce_clusters.m create mode 100644 mainLoop/update_params.m create mode 100644 mainLoop/zeroOutKcoords.m create mode 100644 master_file_example_MOVEME.m create mode 100644 merge_posthoc2.m create mode 100644 mergesplits/distance_betwxt.m create mode 100644 mergesplits/merging_score.m create mode 100644 mergesplits/pairwise_dists.m create mode 100644 mergesplits/replace_clusters.m create mode 100644 mergesplits/split_clust.m create mode 100644 preProcess/convertOpenEphysToRawBInary.m create mode 100644 preProcess/get_PCproj.m create mode 100644 preProcess/get_isolated.m create mode 100644 preProcess/isolated_peaks.m create mode 100644 preProcess/whiteningLocal.m create mode 100644 preprocessData.m create mode 100644 tests/gather_mean_spikes.m create mode 100644 tests/gather_raw_mean_spikes.m create mode 100644 tests/plotPCcoefs.m create mode 100644 tests/plot_final_waveforms.m create mode 100644 tests/plot_waveforms.m create mode 100644 tests/plot_waveforms2.m create mode 100644 tests/plots_of_template_coefficients.m create mode 100644 tests/testCodeFromPhy.m create mode 100644 utils/gather_try.m create mode 100644 utils/getOr.m create mode 100644 utils/my_conv.m create mode 100644 utils/my_conv2.m create mode 100644 utils/my_inv.m create mode 100644 utils/my_min.m create mode 100644 utils/my_sum.m create mode 100644 utils/normc.m create mode 100644 utils/sq.m diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..bdb0cabc --- /dev/null +++ b/.gitattributes @@ -0,0 +1,17 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..1d98e997 --- /dev/null +++ b/.gitignore @@ -0,0 +1,48 @@ +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Compiled source +*.mexa64 +*.mexw64 +*.asv + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# ========================= +# Operating System Files +# ========================= + +# OSX +# ========================= + +.DS_Store +.AppleDouble +.LSOverride + +# Thumbnails +._* + +# Files that might appear on external disk +.Spotlight-V100 +.Trashes + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk diff --git a/CUDA/mexGPUall.m b/CUDA/mexGPUall.m new file mode 100644 index 00000000..37b88a5a --- /dev/null +++ b/CUDA/mexGPUall.m @@ -0,0 +1,15 @@ +% mexGPUall. For these to complete succesfully, you need to configure the +% Matlab GPU library first (see README files for platform-specific +% information) + mexcuda -largeArrayDims mexMPmuFEAT.cu + mexcuda -largeArrayDims mexMPregMU.cu + mexcuda -largeArrayDims mexWtW2.cu + +% mex -largeArrayDims mexMPmuFEAT.cu +% mex -largeArrayDims mexMPregMU.cu +% mex -largeArrayDims mexWtW2.cu + +% If you get uninterpretable errors like "An unexpected error occurred during CUDA execution", and if you are using Pascal GPUs +% (GTX 10xx series), it might be necessary to upgrade to Matlab 2017a / CUDA 8.0. + + diff --git a/CUDA/mexMPmuFEAT.cu b/CUDA/mexMPmuFEAT.cu new file mode 100644 index 00000000..19375805 --- /dev/null +++ b/CUDA/mexMPmuFEAT.cu @@ -0,0 +1,426 @@ +/* + * Example of how to use the mxGPUArray API in a MEX file. This example shows + * how to write a MEX function that takes a gpuArray input and returns a + * gpuArray output, e.g. B=mexFunction(A). + * + * Copyright 2012 The MathWorks, Inc. + */ +#include +#include +#include +#include +#include +#include "mex.h" +#include "gpu/mxGPUArray.h" +#include +#include +#include +using namespace std; + +const int Nthreads = 1024, NchanMax = 128, block = 32, NrankMax = 3; +////////////////////////////////////////////////////////////////////////////////////////// +__global__ void Conv1D(const double *Params, const float *data, const float *W, float *conv_sig){ + volatile __shared__ float sW[81*NrankMax], sdata[(Nthreads+81)*NrankMax]; + float x; + int tid, tid0, bid, i, nid, Nrank, NT, Nfilt, nt0; + + tid = threadIdx.x; + bid = blockIdx.x; + Nfilt = (int) Params[1]; + NT = (int) Params[0]; + Nrank = (int) Params[6]; + nt0 = (int) Params[9]; + + if(tid0){ + for (i=0; i Cbest + 1e-6){ + Cbest = Cf; + xb = Ci - lam[i] * mu[i]; // /(lam[i] + 1); + ibest = i; + } + } + if (Cbest > Th*Th){ + err[tid0] = Cbest; + xbest[tid0] = xb; + ftype[tid0] = ibest; + } + } +} +////////////////////////////////////////////////////////////////////////////////////////// +__global__ void cleanup_spikes(const double *Params, const float *xbest, const float *err, + const int *ftype, int *st, int *id, float *x, float *C, int *counter){ + int lockout, indx, maxFR, NTOT, tid, bid, NT, tid0, j; + volatile __shared__ float sdata[Nthreads+2*81+1]; + bool flag=0; + float err0; + + lockout = (int) Params[9] - 1; + tid = threadIdx.x; + bid = blockIdx.x; + + NT = (int) Params[0]; + maxFR = (int) Params[3]; + tid0 = bid * Nthreads; + + + if(tid01e-10){ + flag = 0; + for(j=-lockout;j<=lockout;j++) + if(sdata[tid+lockout+j]>err0){ + flag = 1; + break; + } + if(flag==0){ + indx = atomicAdd(&counter[0], 1); + if (indx=0 & tcurr>>(d_Params, d_data, d_W, d_dout); + for(int k=0;k<(int) Params[4];k++){ + cudaMemset(d_err, 0, NT * sizeof(float)); + cudaMemset(d_ftype, 0, NT * sizeof(int)); + cudaMemset(d_xbest, 0, NT * sizeof(float)); + + // compute the best filter + bestFilter<<>>( d_Params, + d_dout, d_mu, d_lam, d_nu, d_xbest, d_err, d_ftype); + + // ignore peaks that are smaller than another nearby peak + cleanup_spikes<<>>(d_Params, + d_xbest, d_err, d_ftype, d_st, d_id, d_x, d_C, d_counter); + + // add new spikes to 2nd counter + cudaMemcpy(counter, d_counter, sizeof(int), cudaMemcpyDeviceToHost); + if (counter[0]>maxFR){ + counter[0] = maxFR; + cudaMemcpy(d_counter, counter, sizeof(int), cudaMemcpyHostToDevice); + } + + // extract template features before subtraction + extractFEAT<<>>(d_Params, d_st, d_id, + d_x, d_counter, d_dout, d_WtW, d_lam, d_mu,d_feat); + + // subtract the detected spikes + subSpikes<<>>(d_Params, d_st, d_id, + d_x, d_counter, d_dout, d_WtW); + + // update 1st counter from 2nd counter + cudaMemcpy(d_counter+1, d_counter, sizeof(int), cudaMemcpyDeviceToDevice); + + if(counter[0]==maxFR) + break; + } + +// extractFEAT<<>>(d_Params, d_st, d_id, d_x, d_counter, d_dout, d_WtW, d_feat); + + float *x, *C, *feat; + int *st, *id; + int minSize; + if (counter[0] +#include +#include +#include +#include +#include "mex.h" +#include "gpu/mxGPUArray.h" +#include +#include +#include +using namespace std; + +const int Nthreads = 1024, NchanMax = 128, NrankMax = 3; +////////////////////////////////////////////////////////////////////////////////////////// +__global__ void Conv1D(const double *Params, const float *data, const float *W, float *conv_sig){ + __shared__ float sW[81*NrankMax], sdata[(Nthreads+81)*NrankMax]; + float x; + int tid, nt0, tid0, bid, i, nid, Nrank, NT, Nfilt; + + tid = threadIdx.x; + bid = blockIdx.x; + Nfilt = (int) Params[1]; + NT = (int) Params[0]; + Nrank = (int) Params[6]; + nt0 = (int) Params[9]; + + if(tid0){ + for (i=0; i Cbest){ + Cbest = Cf; + xb = Ci - mu[i] * lam[i]; /// (lam[i] + 1); + ibest = i; + } + } + if (Cbest > Th*Th){ + err[tid0] = Cbest; + xbest[tid0] = xb; + ftype[tid0] = ibest; + } + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +__global__ void cleanup_spikes(const double *Params, const float *xbest, + const float *err, const int *ftype, const bool *UtU, int *st, int *id, float *x, + float *C, int *counter, float *nsp){ + int lockout, curr_token, indx, maxFR, Nfilt, NTOT, tid, bid, NT, tid0, j; + volatile __shared__ float sdata[Nthreads+2*81+1]; + volatile __shared__ int id_sh[Nthreads+2*81+1]; + bool flag=0; + float err0; + + lockout = (int) Params[9] - 1; + tid = threadIdx.x; + bid = blockIdx.x; + + NT = (int) Params[0]; + Nfilt = (int) Params[1]; + maxFR = (int) Params[3]; + tid0 = bid * Nthreads; + + if(tid01e-10){ + flag = 0; + for(j=-lockout;j<=lockout;j++) + if(sdata[tid+lockout+j]>err0) + if (UtU[curr_token*Nfilt + id_sh[tid+lockout+j]]){ + flag = 1; + break; + } + if(flag==0){ + indx = atomicAdd(&counter[0], 1); + if (indx>>(d_Params, d_data, d_W, d_dout); + bestFilter<<>>(d_Params, d_dout, d_mu, d_lam, d_nu, + d_xbest, d_err, d_ftype); + cleanup_spikes<<>>(d_Params, d_xbest, d_err, + d_ftype, d_UtU, d_st, d_id, d_x, d_C, d_counter, d_nsp); + + dim3 block(nt0, 1024/nt0); + average_snips<<>>( d_Params, d_st, d_id, d_x, d_counter, d_dataraw, d_dWU); + + cudaMemcpy(counter, d_counter, sizeof(int), cudaMemcpyDeviceToHost); + + plhs[0] = mxGPUCreateMxArrayOnGPU(dWU); + + float *x, *C; + int *st, *id; + int minSize; + if (counter[0] +#include +#include +#include +#include +#include "mex.h" +#include "gpu/mxGPUArray.h" +#include +#include +#include +using namespace std; + +const int Nthreads = 1024, nblock = 32; +////////////////////////////////////////////////////////////////////////////////////////// + +__global__ void crossFilter(const double *Params, const float *W1, const float *W2, + const float *UtU, float *WtW){ + __shared__ float shW1[nblock*81], shW2[nblock*81]; + + float x; + int nt0, tidx, tidy , bidx, bidy, i, NT, Nfilt, t; + + tidx = threadIdx.x; + tidy = threadIdx.y; + bidx = blockIdx.x; + bidy = blockIdx.y; + + Nfilt = (int) Params[1]; + nt0 = (int) Params[9]; + + while(tidx>>(d_Params, d_W1, d_W2, d_UtU, d_WtW); + + plhs[0] = mxGPUCreateMxArrayOnGPU(WtW); + + cudaFree(d_Params); + mxGPUDestroyGPUArray(WtW); + mxGPUDestroyGPUArray(W1); + mxGPUDestroyGPUArray(W2); + mxGPUDestroyGPUArray(UtU); + +} diff --git a/CUDA/mex_CUDA_glnxa64.xml b/CUDA/mex_CUDA_glnxa64.xml new file mode 100644 index 00000000..ebb0d2fb --- /dev/null +++ b/CUDA/mex_CUDA_glnxa64.xml @@ -0,0 +1,75 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CUDA/mex_CUDA_win64.xml b/CUDA/mex_CUDA_win64.xml new file mode 100644 index 00000000..b1a9c726 --- /dev/null +++ b/CUDA/mex_CUDA_win64.xml @@ -0,0 +1,198 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Docs/phy_installation_with_templates.txt b/Docs/phy_installation_with_templates.txt new file mode 100644 index 00000000..e177d107 --- /dev/null +++ b/Docs/phy_installation_with_templates.txt @@ -0,0 +1,16 @@ +Follow the instructions at https://github.com/kwikteam/phy to install phy with the template-gui extension. + +Then run + +phy template-gui params.py (--debug, if you get an error) + +where params.py is a text file that KiloSort should produce. In case of errors, check that params.py contains information like this: + +dat_path = '20160330_ap_CAR.dat' % filename +n_channels_dat = 32 % number of channels +dtype = 'int16' +offset = 0 +sample_rate = 30000. +hp_filtered = False + + diff --git a/Docs/readme_mac.txt b/Docs/readme_mac.txt new file mode 100644 index 00000000..547b558a --- /dev/null +++ b/Docs/readme_mac.txt @@ -0,0 +1,52 @@ +***these instructions have not been tested in a long time, and Matlab appears to have simplified this process quite a bit on other platforms. +Try running mexGPUall right after installing everything. +If that fails, the rest of the instructions below might help. Particularly #7 appears required on Mac. *** + +Assuming gpu functions have been correctly compiled (see below), a "master_file.m" is available that you should copy to a local path and change for each of your experiments. +The logic is that the git folder might be updated, and when that happens all extraneous files in that folder will be deleted and any changes you made reverted. + +Mac (instructions from Dan Denman) +(w/ NVIDIA GeForce GTX 970; OS X 10.11.3, Xcode 7.2.1, CUDA 7.5.21) + +1. installed MATLAB R2015b +2. installed parallel computing toolbox license +3. modified ~.bashrc to include: +export CUDA_HOME=/usr/local/cuda +export PATH=/Developer/NVIDIA/CUDA­7.5/bin:$PATH +export DYLD_LIBRARY_PATH=/Developer/NVIDIA/CUDA­7.5/lib:$DYLD_LIBRARY_PATH +4. tried to run mexGPUall.m, MATLAB couldn’t find a compiler +updated Xcode to 7.2.XXX +5. did a bunch more stuff trying to specify MATLAB compiler, including adding this to ~.bashrc. not sure any of this is actually necessary. + +export CUDA_PATH=/usr/local/cuda +export MW_NVCC_PATH=/Developer/NVIDIA/CUDA­7.5/bin/nvcc:$MW_NVCC_PATH + +6. eventually, i found this thread, which led me to switch the ‘mex’ commands in mexGPUall.m to ‘mexcuda’ +I also had to modify nvcc_clang++.xml, which in my MATLAB is here: +/Applications/MATLAB_R2015b.app/toolbox/distcomp/gpu/extern/src/mex/maci64/nvcc_clang++.xml +changed Version = “7.0” to Version = “7.5” for my CUDA install +add some paths so it could find my Xcode install. +I also did this to nvcc_clang++_dynamic.xml. if you ever want more details I can provide. + +7. after that, mexcuda at least found nvcc. but, errors thrown during mexGPUall.m, like this one: + +/Users/administrator/Documents/MATLAB/KiloSort­master/mexWtW.cu:93:32: note: insert an +explicit cast to silence this issue +const mwSize dimsu[] = {Nfilt, Nfilt, ((2 * nt0) ­ 1)}; +^~~~~ +static_cast( ) + +Right, so i inserted static_cast( ) wherever necessary, which was in these places: + +file : line #s + +mexWtW.cu: 93 +mexMPreg.cu: 206,233 +mexMPsub.cu: 282,287,292 +mexMPmuFEAT.cu: 346,356 +mexMPregMU.cu: 231,236,264 +mexWtW2.cu: 97 + +8. ran mexGPUall.m + +...and MEX completed successfully! diff --git a/Docs/readme_win_linux.txt b/Docs/readme_win_linux.txt new file mode 100644 index 00000000..5af9591f --- /dev/null +++ b/Docs/readme_win_linux.txt @@ -0,0 +1,48 @@ +Assuming gpu functions have been correctly compiled (see below), a "master_file.m" is available that you should copy to a local path and change for each of your experiments. The logic is that the git folder might be updated, and when that happens all extraneous files in that folder will be deleted and any changes you made reverted. + +The following are instructions for setting up mex compilation of CUDA files with direct Matlab inputs. Note you need Matlab with the parallel computing toolbox. Instructions below are for Linux and Windows. Mac instructions are in a separate file (I haven't tested them though). If successful, you should be able to run mexGPUall. + +You should be able to run the code on a CPU without compiling any files, but it will be much, much slower than even on 250$ GPUs. For up to 32 channels, the CPU code might be fast enough. + +Windows + +Install Visual Studio Community (2012 or 2013) +Install CUDA 8.0 in Matlab R2017a (and 7.5 in R2016 etc; if in doubt, best to update to latest Matlab and CUDA). If you get a warning of not finding the GPU at the beginning of installation, this might be fine, unless you cannot run mexGPUall, in which case you should try a different combination of Nvidia/CUDA drivers. + +Try to run mexGPUall. If mexcuda gives an error, try the following: copy mex_CUDA_win64.xml (or nvcc_msvc120.xml, or a similarly named file, compatible with your Visual Studio installation version; 11 for 2012 and 12 for 2013) from here +matlabroot/toolbox/distcomp/gpu/extern/src/mex/win64 and into the KiloSort folder (or somewhere in your path). The included file with KiloSort will NOT be compatible with your local environment (unless you start changing paths inside it). + +If your video card is also driving your display, you need to disable the Windows watchdog that kills any process occupying the GPU for too long. +start regedit, +navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers +create new DWORD key called TdrLevel, set value to 0, +restart PC. + +If you find that gpuDevice(1); takes more than 2 minutes each time you +run then you dont have the space to store its compiled files +GTX 1080 seems to have this issue. +In order to fix this set an environment variable "CUDA_CACHE_MAXSIZE " on the machine to +some high value like 1GB. By default "CUDA_CACHE_MAXSIZE" is 32MB. +In Windows you can do this in properties > advanced system settings > environment variables. +In order to set the cache to 1GB use CUDA_CACHE_MAXSIZE 1073741824. + + + +Linux + +UPDATE: for recent video cards/drivers, please see Carl Schoonover's instructions here https://groups.google.com/forum/#!topic/phy-users/g0FSHRI0Nao. + +Install CUDA (should ask for a compatible recent version of gcc, will install Nvidia drivers if necessary). + +Try to run mexGPUall. If mexcuda gives you an error, try something along the following lines + +Append to /home/marius/.bashrc then logout/login: +export CUDA_HOME=/usr/local/cuda-7.5 +export LD_LIBRARY_PATH=${CUDA_HOME}/lib64 +export PATH=${CUDA_HOME}/bin:${PATH} + +Copy mex_CUDA_glnxa64.xml (or a similarly named file, compatible with your Visual Studio installation) from here +matlabroot/toolbox/distcomp/gpu/extern/src/mex/ +and into the KiloSort folder (or somewhere in your path). The included file with KiloSort will NOT be compatible with your local environment (unless you start changing paths inside it). + + diff --git a/FwBwAddon/assembleBigDATA.m b/FwBwAddon/assembleBigDATA.m new file mode 100644 index 00000000..46084bdf --- /dev/null +++ b/FwBwAddon/assembleBigDATA.m @@ -0,0 +1,83 @@ +% assemble dataset + +probeName = {'K1', 'K2', 'K3', 'ZNP1', 'ZNP2', 'ZNP3', 'ZNP4', 'ZO'}; + +rootAlignments = '\\zserver.cortexlab.net\Data\Subjects\'; + +nt0 = 3e4; +NT = 2135; + +spks = []; +clu = []; +st = []; + +iMouse = 2; + +mname = {'Waksman', 'Krebs', 'Robbins'}; +datexp = {'2017-06-10', '2017-06-05', '2017-06-13'}; +rootZ = '\\zserver\Data\Subjects'; + +Nmax = 0; +for j = 1:length(probeName) + frootAlign = fullfile(rootAlignments, mname{iMouse}, datexp{iMouse}, 'alignments'); + + ops.dir_rez = 'G:\DATA\Spikes\'; + fname = sprintf('correct_ephys_%s_to_ephys_K1.npy', probeName{j}); + if j>1 + boff = readNPY(fullfile(frootAlign, fname)); + else + boff = [1 0]'; + end + + % save the result file + fname = fullfile(ops.dir_rez, sprintf('rez_%s_%s_%s.mat', mname{iMouse}, ... + datexp{iMouse}, probeName{j})); + load(fname); + + NN = rez.ops.Nfilt; + + t0 = ceil(rez.ops.trange(1) * ops.fs); + + nSpikes = numel(rez.st); + + st0 = t0 + rez.st; + spks(j).st = [st0(:)/ops.fs ones(nSpikes,1)] * boff; + + spks(j).clu = rez.clu(:); + + rez.W(7*374, 1) = 0; + spks(j).W = reshape(gather(rez.W), 7, 374, []); + [~, spks(j).Wheights] = max(sq(sum(spks(j).W.^2,1)), [], 1); + spks(j).wPCA = rez.wPCA; + + ycoords = rez.ycoords(rez.connected>0); + + spks(j).Wheights = ycoords(spks(j).Wheights); + + clu = cat(1, clu, Nmax + rez.clu(:)); + st = cat(1, st, spks(j).st(:)); + + Nmax = Nmax + max(rez.clu); + end + +save(fullfile('G:\DATA\Spikes\', sprintf('spks%s.mat', mname{iMouse})), 'spks') +%% + +S = sparse(max(1, ceil(st - rez.ops.trange(1))), clu, ones(1, numel(clu))); + +Sall = gpuArray(single(full(S))); +Sall = Sall(15:end-15, :); + + +%% +Slow = my_conv2(Sall,500,1); +rat = min(Slow, [], 1) ./max(Slow, [],1); +S0 = Sall(:, rat>.5); + +[U S V] = svdecon(S0 - mean(S0,1)); + +plot(U(:,3)) + +%% + +plot(U(:,4)) \ No newline at end of file diff --git a/FwBwAddon/configFileBench384.m b/FwBwAddon/configFileBench384.m new file mode 100644 index 00000000..bb1b4e0b --- /dev/null +++ b/FwBwAddon/configFileBench384.m @@ -0,0 +1,75 @@ + +ops.GPU = 1; % whether to run this code on an Nvidia GPU (much faster, mexGPUall first) +ops.parfor = 1; % whether to use parfor to accelerate some parts of the algorithm +ops.verbose = 1; % whether to print command line progress +ops.showfigures = 1; % whether to plot figures during optimization + +ops.datatype = 'bin'; % binary ('dat', 'bin') or 'openEphys' +ops.fbinary = 'F:\DATA\Spikes\Diego\smallFile.dat'; % will be created for 'openEphys' +ops.fproc = 'F:\DATA\Spikes\Diego\temp_wh.dat'; % residual from RAM of preprocessed data +ops.root = 'F:\DATA\Spikes\Diego\'; % 'openEphys' only: where raw files are + +ops.fs = 30000; % sampling rate +% ops.NchanTOT = 385; % total number of channels +% ops.Nchan = 344; % number of active channels +ops.Nfilt = 512*3; % number of filters to use (2-4 times more than Nchan, should be a multiple of 32) +ops.nNeighPC = 12; % visualization only (Phy): number of channnels to mask the PCs, leave empty to skip (12) +ops.nNeigh = 16; % visualization only (Phy): number of neighboring templates to retain projections of (16) + +% options for channel whitening +ops.whitening = 'full'; % type of whitening (default 'full', for 'noSpikes' set options for spike detection below) +ops.nSkipCov = 10; % compute whitening matrix from every N-th batch (1) +ops.whiteningRange = 32; % how many channels to whiten together (Inf for whole probe whitening, should be fine if Nchan<=128) + +% define the channel map as a filename (string) or simply an array +% ops.chanMap = 'F:\DATA\Spikes\Diego\chanMap.mat'; % 'F:\DATA\Spikes\forPRBimecP3opt3.mat'; % make this file using createChannelMapFile.m +ops.chanMap = 'G:\DATA\Spikes\neuropixPhase3A_kilosortChanMap.mat'; +ops.criterionNoiseChannels = 0.2; % fraction of "noise" templates allowed to span all channel groups (see createChannelMapFile for more info). +% ops.chanMap = 1:ops.Nchan; % treated as linear probe if a chanMap file + +% other options for controlling the model and optimization +ops.Nrank = 3; % matrix rank of spike template model (3) +ops.nfullpasses = 6; % number of complete passes through data during optimization (6) +ops.maxFR = 20000; % maximum number of spikes to extract per batch (20000) +ops.fshigh = 150; % frequency for high pass filtering +ops.ntbuff = 64; % samples of symmetrical buffer for whitening and spike detection +ops.scaleproc = 200; % int16 scaling of whitened data +ops.NT = 64*1024+ ops.ntbuff;% this is the batch size (try decreasing if out of memory) +% for GPU should be multiple of 32 + ntbuff + +% the following options can improve/deteriorate results. +% when multiple values are provided for an option, the first two are beginning and ending anneal values, +% the third is the value used in the final pass. +ops.Th = [4 12 12]; % threshold for detecting spikes on template-filtered data ([4 10 10]) +ops.lam = [5 20 20]; % large means amplitudes are forced around the mean ([5 20 20]) +ops.nannealpasses = 4; % should be less than nfullpasses (4) +ops.momentum = 1./[20 400]; % start with high momentum and anneal (1./[20 400]) +ops.shuffle_clusters = 1; % allow merges and splits during optimization (1) +ops.mergeT = .1; % upper threshold for merging (.1) +ops.splitT = .1; % lower threshold for splitting (.1) + +% options for initializing spikes from data +ops.initialize = 'no'; %'fromData' or 'no' +ops.spkTh = -6; % spike threshold in standard deviations (-6) +ops.loc_range = [5 4]; % ranges to detect peaks; plus/minus in time and channel ([3 1]) +ops.long_range = [30 6]; % ranges to detect isolated peaks ([30 6]) +ops.maskMaxChannels = 5; % how many channels to mask up/down ([5]) +ops.crit = .65; % upper criterion for discarding spike repeates (0.65) +ops.nFiltMax = 10000; % maximum "unique" spikes to consider (10000) + +% load predefined principal components (visualization only (Phy): used for features) +dd = load('PCspikes2.mat'); % you might want to recompute this from your own data +ops.wPCA = dd.Wi(:,1:7); % PCs + +% options for posthoc merges (under construction) +ops.fracse = 0.1; % binning step along discriminant axis for posthoc merges (in units of sd) +ops.epu = Inf; + +ops.ForceMaxRAMforDat = 0e9; % maximum RAM the algorithm will try to use; on Windows it will autodetect. + +ops.Drift.chSmooth = 5; +ops.Drift.tSmooth = 20; +ops.doDriftCorrection = 1; +ops.sigDrift = 15; +ops.sigShift = 20; +ops.initialize = 'fromDriftCorrection'; \ No newline at end of file diff --git a/FwBwAddon/driftTopPCs.m b/FwBwAddon/driftTopPCs.m new file mode 100644 index 00000000..33e831f3 --- /dev/null +++ b/FwBwAddon/driftTopPCs.m @@ -0,0 +1,35 @@ + +S = sparse(ceil(rez.st/3e4), rez.clu, ones(1, numel(rez.clu))); +S(1, rez.ops.Nfilt) = 0; + +S = gpuArray(single(full(S))); + +% Shigh = S - mean(S,1); +% Shigh = S - my_conv2(S,500,1); + +Slow = my_conv2(S,500,1); + +rat = min(Slow, [], 1) ./max(Slow, [],1); + +S0 = S(:, rat>.5); + +% [U Sv V] = svdecon(zscore(Shigh, 1, 1)); +% [U Sv V] = svdecon(S0 - mean(S0, 1)); +[U Sv V] = svdecon(zscore(S0,1,1)); +%% +clf +plot(U(:,4)) +%% +imagesc(S0, [0 20]) + +%% + +W = reshape(rez.W, 7, 374, []); + +Wrec = reshape(rez.wPCA * W(:,:), 61, 374, []); + + +imagesc(Wrec(:,:, 244)') + +%% +1 \ No newline at end of file diff --git a/FwBwAddon/extractPCfeatures0.m b/FwBwAddon/extractPCfeatures0.m new file mode 100644 index 00000000..4adb5938 --- /dev/null +++ b/FwBwAddon/extractPCfeatures0.m @@ -0,0 +1,85 @@ +function [uprojDAT, call, muall, tall] = extractPCfeatures0(rez, wPCA) + +ops = rez.ops; +nPC = size(wPCA,2); + +call = zeros(1, 5e6); +muall = zeros(1, 5e6); +tall = zeros(1, 5e6); + +i0 = 0; + +% indices of channels relative to center +nCH = 8; +dc = [-nCH:nCH]; +% dc = -12:15; +%% +Nbatch = rez.temp.Nbatch; + + +NT = ops.NT; +batchstart = 0:NT:NT*Nbatch; + +uprojDAT = zeros(size(wPCA,2) * numel(dc), 1e7, 'single'); + +fid = fopen(ops.fproc, 'r'); +for ibatch = 1:Nbatch + offset = 2 * ops.Nchan*batchstart(ibatch); + fseek(fid, offset, 'bof'); + dat = fread(fid, [NT ops.Nchan], '*int16'); + + if ibatch==1 + ioffset = 0; + else + ioffset = ops.ntbuff; + end + toff = -ioffset + (NT-ops.ntbuff)*(ibatch-1); + + % move data to GPU and scale it + if ops.GPU + dataRAW = gpuArray(dat); + else + dataRAW = dat; + end + dataRAW = single(dataRAW); + dataRAW = dataRAW / ops.scaleproc; + + % find isolated spikes + [row, col, mu] = isolated_peaks_new(dataRAW, ops); + [~, isort] = sort(row); + row = row(isort); + col = col(isort); + mu = mu(isort); + + muall(1,i0 + (1:numel(col))) = gather(mu); + tall(1,i0 + (1:numel(row))) = gather(row-ops.nt0) + toff; + call(1,i0 + (1:numel(col))) = gather(col); + + % get clips from upsampled data + clips = get_SpikeSample(dataRAW, row, col, dc); + + % compute center of mass of each spike and add to height estimate + uS = reshape(wPCA' * clips(:, :), nPC , numel(dc), []); +% uS = permute(uS, [2 1 3]); + uS = reshape(uS, nPC*numel(dc), []); + + if i0+numel(row)>size(uprojDAT,2) + nleft = size(uprojDAT,2) - i0; + uprojDAT(:, i0 + (1:nleft)) = gather_try(uS(:, 1:nleft)); + i0 = i0 + nleft; + break; + end + + uprojDAT(:, i0 + (1:numel(row))) = gather_try(uS); + + i0 = i0 + numel(row); +end + +call(i0+1:end) = []; +tall(i0+1:end) = []; +muall(i0+1:end) = []; +uprojDAT(:, i0+1:end) = []; +fclose(fid); + + + diff --git a/FwBwAddon/extractPCfromSnippets.m b/FwBwAddon/extractPCfromSnippets.m new file mode 100644 index 00000000..252e28b5 --- /dev/null +++ b/FwBwAddon/extractPCfromSnippets.m @@ -0,0 +1,44 @@ +function wPCA = extractPCfromSnippets(rez, nPCs) + +ops = rez.ops; + +% Nchan = ops.Nchan; + +Nbatch = rez.temp.Nbatch; + +NT = ops.NT; +batchstart = 0:NT:NT*Nbatch; + +% extract the PCA projections +CC = zeros(61); +fid = fopen(ops.fproc, 'r'); + +for ibatch = 1:100:Nbatch + offset = 2 * ops.Nchan*batchstart(ibatch); + fseek(fid, offset, 'bof'); + dat = fread(fid, [NT ops.Nchan], '*int16'); + + % move data to GPU and scale it + if ops.GPU + dataRAW = gpuArray(dat); + else + dataRAW = dat; + end + dataRAW = single(dataRAW); + dataRAW = dataRAW / ops.scaleproc; + + + % find isolated spikes + [row, col, mu] = isolated_peaks_new(dataRAW, ops); + + clips = get_SpikeSample(dataRAW, row, col, 0); + + c = sq(clips(:, :)); + CC = CC + gather(c * c')/1e3; + +end +fclose(fid); + +[U Sv V] = svdecon(CC); + +wPCA = U(:, 1:nPCs); diff --git a/FwBwAddon/fwbwClustering.m b/FwBwAddon/fwbwClustering.m new file mode 100644 index 00000000..3b508617 --- /dev/null +++ b/FwBwAddon/fwbwClustering.m @@ -0,0 +1,165 @@ +function rez = fwbwClustering(rez) + +nPCs = rez.ops.nPCs; +Nfilt = rez.ops.Nfilt; +nfullpasses = rez.ops.nfullpasses; + +% extract PC projections here +tic +wPCA = extractPCfromSnippets(rez, nPCs); +fprintf('Obtained 7 PC waveforms in %2.2f seconds \n', toc) + +tic +[uprojDAT, call, muall, tsall] = extractPCfeatures0(rez, wPCA); +fprintf('Extracted %d spikes with %d features in %2.2f seconds \n', ... + size(uprojDAT,2), size(uprojDAT,1), toc) + +tic +nch = 8; +nCHmax = max(call) + nch; + +ioff = nPCs * gpuArray(int32(call - 8)); + +% split into batches for GPU processing +nS = size(uprojDAT,2); % number of spikes +nSamples = 1e4; % number of spikes per batch +[iBatch, nBatches] = makeBatches(nS, nSamples); +for k = 1:nBatches + [~, isort] = sort(call(iBatch{k})); + iBatch{k} = iBatch{k}(isort); +end + +% iBatch = iBatch(randperm(numel(iBatch))); + +[W, Wheights] = initializeW(Nfilt, nCHmax, nPCs); +iorig = 1:Nfilt; + +pm = exp(-1/200); % momentum term +Nnearest = 32; +Params = [nSamples size(uprojDAT,1) Nfilt pm size(W,1) 0 Nnearest]; + +irounds = [1:nBatches nBatches:-1:1]; +Boffset = 0; %ceil(nBatches/2); +niter = nfullpasses * 2*nBatches + Boffset; +ops.lam = [5 30]; +lami = exp(linspace(log(ops.lam(1)), log(ops.lam(2)), niter)); + +flag_resort = 0; +flag_initialized = 0; + +mu = gpuArray.ones(Nfilt, 1, 'single'); +dWU = gpuArray.zeros(size(W), 'single'); +M = NaN * gpuArray.ones(nS,1, 'single'); +iList = gpuArray(int32(ones(Nnearest, Nfilt))); +cfall = zeros(nS, Nnearest, 'single'); +nspfilt = zeros(1, Nfilt, 'single'); +nspmax = zeros(1, Nfilt, 'single'); +Cost = zeros(niter,1); +icl = zeros(nS, 1); + +tauD = 2; + +for i = 1:niter + k = irounds(rem(i-1 + Boffset, 2*nBatches)+1); + + uproj = gpuArray(uprojDAT(:, iBatch{k})); + Params(1) = size(uproj,2); + + % boolean variable: should we compute spike x filter + iW = abs(call(iBatch{k})' - Wheights) < 10; + ioffsub = ioff(iBatch{k}); + + % get iclust and update W + [dWU, iclust, cmax, cf, nsp] = mexClustering(Params, uproj, W, ioffsub, ... + iW, dWU, mu, iList-1); + +% nspfilt(iorig) = exp(-1/tauD) * nspfilt(iorig) + (1 - exp(-1/tauD)) * single(nsp'); +% nspmax = max(nspfilt, nspmax); + +% coefs(iBatch{k}, :) = cmax; + + M(iBatch{k}) = max(cmax, [], 2); + + icl(iBatch{k}) = iorig(iclust+1); + + % update W + if i==100 + flag_resort = 1; + flag_initialized = 1; + end + + if flag_initialized + mu = sum(dWU.^2,1).^.5; + W = dWU./(1e-5 + mu); + Params(6) = lami(i); + if ~flag_resort + cfall(iBatch{k}, :) = cf; + end + end + + if flag_resort + W = reshape(W, nPCs, nCHmax, Nfilt); + nW = sq(sum(W(1, :, :).^2,1)); + W = reshape(W, nCHmax * nPCs, Nfilt); + + [~, Wheights] = max(nW,[], 1); + [Wheights, isort] = sort(Wheights); + iorig = iorig(isort); + W = W(:, isort); + dWU = dWU(:, isort); + end + + + if i==niter-nBatches + flag_resort = 0; + cc = W' * W; + [~, isort] = sort(cc, 1, 'descend'); + iList = int32(gpuArray(isort(1:Nnearest, :))); + end + +% if rem(i,100)==1 +% p = p+1; +% Cost(p) = gather(nanmean(M.^2)); +% plot(Cost(1:p)) +% drawnow +% end +end + + +iresort(iorig) = 1:Nfilt; + +rez.cfall = cfall - cfall(:,1); +rez.st = tsall; +rez.clu = iresort(icl); +rez.wPCA = wPCA; +rez.W = W; +rez.iList = iList; +rez.call = call; + +fprintf('Optimization complete in %2.2f seconds \n', toc) + +%% +% S = sparse(ceil(((tsall -tsall(1))+1)/3e4), icl, ones(1, numel(icl))); +% S(1, Nfilt) = 0; +% +% S = gpuArray(single(full(S))); +% +% % Shigh = S - mean(S,1); +% % Shigh = S - my_conv2(S,500,1); +% +% Slow = my_conv2(S,500,1); +% +% rat = min(Slow, [], 1) ./max(Slow, [],1); +% +% S0 = S(:, rat>.5); +% +% % [U Sv V] = svdecon(zscore(Shigh, 1, 1)); +% [U Sv V] = svdecon(S0 - mean(S0, 1)); +% +% clf +% plot(U(:,1:4)) +% %% +% clear iresort +% iresort(iorig) = 1:Nfilt; +% imagesc(S(:, iresort), [0 20]) +% diff --git a/FwBwAddon/get_SpikeSample.m b/FwBwAddon/get_SpikeSample.m new file mode 100644 index 00000000..54b4aede --- /dev/null +++ b/FwBwAddon/get_SpikeSample.m @@ -0,0 +1,20 @@ +function clips = get_SpikeSample(dataRAW, row, col, dc) + +[nT, nChan] = size(dataRAW); + +% times around the peak to consider +dt = -21 + [1:61]; + +% temporal indices +indsT = repmat(row', numel(dt), 1) + repmat(dt', 1, numel(row)); +indsC = repmat(col', numel(dc), 1) + repmat(dc', 1, numel(col)); + +indsC(indsC<1) = 1; +indsC(indsC>nChan) = nChan; + +indsT = permute(indsT, [1 3 2]); +indsC = permute(indsC, [3 1 2]); +ix = indsT + (indsC-1) * nT; + +% extract only spatial indices within the col index +clips = reshape(dataRAW(ix), numel(dt), numel(dc), numel(row)); diff --git a/FwBwAddon/initializeW.m b/FwBwAddon/initializeW.m new file mode 100644 index 00000000..a9418ccc --- /dev/null +++ b/FwBwAddon/initializeW.m @@ -0,0 +1,14 @@ +function [W, Wheights] = initializeW(Nfilt, nCHmax, nPCs) +W = gpuArray.zeros(7, nCHmax, Nfilt, 'single'); +ic = round(linspace(1, nCHmax, Nfilt)); +W(7*(ic-1)+1 + 7 * nCHmax * [0:1:Nfilt-1]) = -100; +W = reshape(W, nCHmax * nPCs, Nfilt); +W = W + 1 * gpuArray.randn(nCHmax * nPCs, Nfilt, 'single'); +W = normc(W); +W = reshape(W, nPCs, nCHmax, Nfilt); +nW = sq(sum(W(1, :, :).^2,1)); +[~, Wheights] = max(nW,[], 1); +[~, isort] = sort(Wheights); +W = reshape(W, nCHmax * nPCs, Nfilt); +W = W(:, isort); +end \ No newline at end of file diff --git a/FwBwAddon/isolated_peaks.m b/FwBwAddon/isolated_peaks.m new file mode 100644 index 00000000..f4d0b87d --- /dev/null +++ b/FwBwAddon/isolated_peaks.m @@ -0,0 +1,24 @@ +function [row, col, mu] = isolated_peaks(S1, ops) +loc_range = ops.loc_range; +long_range = ops.long_range; +Th = ops.spkTh; +nt0 = ops.nt0; + +% loc_range = [3 1]; +% long_range = [30 6]; +smin = my_min(S1, loc_range, [1 2]); +peaks = single(S1nS) = []; diff --git a/FwBwAddon/masterFwBw.m b/FwBwAddon/masterFwBw.m new file mode 100644 index 00000000..f7095a67 --- /dev/null +++ b/FwBwAddon/masterFwBw.m @@ -0,0 +1,45 @@ +addpath(genpath('D:\CODE\GitHub\KiloSort')) % path to kilosort folder +addpath('D:\CODE\GitHub\FwBwAddon') +addpath('D:\CODE\GitHub\npy-matlab') + +% mexcuda('D:\CODE\GitHub\FwBwAddon\mexClustering.cu'); + +pathToYourConfigFile = 'D:\CODE\GitHub\FwBwAddon'; % take from Github folder and put it somewhere else (together with the master_file) +run(fullfile(pathToYourConfigFile, 'configFileBench384.m')) + +% common options for every probe +ops.chanMap = 'D:\CODE\GitHub\FwBwAddon\neuropixPhase3A_kilosortChanMap_385.mat'; +% ops.trange = [3300 Inf]; % TIME RANGE IN SECONDS TO PROCESS +% ops.trange = [3400 Inf]; % TIME RANGE IN SECONDS TO PROCESS +ops.trange = [3750 Inf]; % TIME RANGE IN SECONDS TO PROCESS + +ops.Nfilt = 512; % how many clusters to use +ops.nfullpasses = 6; % how many forward backward passes to do +ops.nPCs = 7; % how many PCs to project the spikes into + +ops.useRAM = 0; % whether to use RAM for all data, or no data +ops.spkTh = -4; % spike threshold +ops.nSkipCov = 5; % how many batches to skip when computing whitening matrix + +probeName = {'K1', 'K2', 'K3', 'ZNP1', 'ZNP2', 'ZNP3', 'ZNP4', 'ZO'}; +mname = 'Krebs'; %'Waksman'; %'Krebs'; %'Robbins'; +datexp = '2017-06-05'; %'2017-06-10'; %'2017-06-13'; +rootZ = '\\zserver\Data\Subjects'; + +for j = 1:length(probeName) + fname = sprintf('%s_%s_%s_g0_t0.imec.ap_CAR.bin', mname, datexp, probeName{j}); + ops.fbinary = fullfile(rootZ, mname, datexp, sprintf('ephys_%s', probeName{j}), fname); + ops.fproc = 'G:\DATA\Spikes\temp_wh.dat'; % residual from RAM of preprocessed data + ops.dir_rez = 'G:\DATA\Spikes\'; + + % preprocess data + rez = preprocessDataSub(ops); + + + % cluster the threshold crossings + rez = fwbwClustering(rez); + + % save the result file + fname = fullfile(ops.dir_rez, sprintf('rez_%s_%s_%s.mat', mname, datexp, probeName{j})); + save(fname, 'rez', '-v7.3'); +end diff --git a/FwBwAddon/mexClustering.cu b/FwBwAddon/mexClustering.cu new file mode 100644 index 00000000..0ae87fe1 --- /dev/null +++ b/FwBwAddon/mexClustering.cu @@ -0,0 +1,260 @@ +/* + * Example of how to use the mxGPUArray API in a MEX file. This example shows + * how to write a MEX function that takes a gpuArray input and returns a + * gpuArray output, e.g. B=mexFunction(A). + * + * Copyright 2012 The MathWorks, Inc. + */ +#include +#include +#include +#include +#include +#include "mex.h" +#include "gpu/mxGPUArray.h" +#include +#include +#include +using namespace std; + + +////////////////////////////////////////////////////////////////////////////////////////// +__global__ void computeCost(const double *Params, const float *uproj, const float *mu, const float *W, + const int *ioff, const bool *iW, float *cmax){ + + int tid, bid, Nspikes, Nfeatures, NfeatW, Nthreads, k; + float xsum = 0.0f, Ci, lam; + + Nspikes = (int) Params[0]; + Nfeatures = (int) Params[1]; + NfeatW = (int) Params[4]; + Nthreads = blockDim.x; + lam = (float) Params[5]; + + tid = threadIdx.x; + bid = blockIdx.x; + + while(tid max_running){ + id[tind] = ind; + max_running = cmax[tind + ind*Nspikes]; + } + + tind += Nblocks*Nthreads; + } +} +////////////////////////////////////////////////////////////////////////////////////////// +__global__ void average_snips(const double *Params, const int *ioff, const int *id, const float *uproj, + const float *cmax, const int *iList, float *cf, float *WU){ + + int tid, bid, ind, Nspikes, Nfeatures, NfeatW, Nnearest, t; + float xsum = 0.0f, pm; + + Nspikes = (int) Params[0]; + Nfeatures = (int) Params[1]; + pm = (float) Params[3]; + NfeatW = (int) Params[4]; + Nnearest = (int) Params[6]; + + tid = threadIdx.x; + bid = blockIdx.x; + + for(ind=0; ind>>(d_Params, d_uproj, d_mu, d_W, d_ioff, + d_iW, d_cmax); + + // loop through cmax to find best template + bestFilter<<<40, 256>>>(d_Params, d_iW, d_cmax, d_id); + + // average all spikes for same template + average_snips<<>>(d_Params, d_ioff, d_id, d_uproj, + d_cmax, d_iList, d_cf, d_dWU); + + count_spikes<<<7, 256>>>(d_Params, d_id, d_nsp); + + // this is how dWU is pushed out + plhs[0] = mxGPUCreateMxArrayOnGPU(dWU); + + // this is how id is pushed out + int *id; + const mwSize dimst[] = {Nspikes,1}; + plhs[1] = mxCreateNumericArray(2, dimst, mxINT32_CLASS, mxREAL); + id = (int*) mxGetData(plhs[1]); + cudaMemcpy(id, d_id, Nspikes * sizeof(int), cudaMemcpyDeviceToHost); + + float *cmax; + const mwSize dimst2[] = {Nspikes,Nfilters}; + plhs[2] = mxCreateNumericArray(2, dimst2, mxSINGLE_CLASS, mxREAL); + cmax = (float*) mxGetData(plhs[2]); + cudaMemcpy(cmax, d_cmax, Nspikes * Nfilters* sizeof(float), cudaMemcpyDeviceToHost); + + float *cf; + const mwSize dimst3[] = {Nspikes,Nnearest}; + plhs[3] = mxCreateNumericArray(2, dimst3, mxSINGLE_CLASS, mxREAL); + cf = (float*) mxGetData(plhs[3]); + cudaMemcpy(cf, d_cf, Nspikes * Nnearest* sizeof(float), cudaMemcpyDeviceToHost); + + int *nsp; + const mwSize dimst4[] = {Nfilters,1}; + plhs[4] = mxCreateNumericArray(2, dimst4, mxINT32_CLASS, mxREAL); + nsp = (int*) mxGetData(plhs[4]); + cudaMemcpy(nsp, d_nsp, Nfilters * sizeof(int), cudaMemcpyDeviceToHost); + + //we are done, clear everything from the GPU + cudaFree(d_Params); + cudaFree(d_cmax); + cudaFree(d_id); + cudaFree(d_cf); + + //do this for the constant variables + mxGPUDestroyGPUArray(uproj); + mxGPUDestroyGPUArray(dWU); + mxGPUDestroyGPUArray(W); + mxGPUDestroyGPUArray(ioff); + mxGPUDestroyGPUArray(iW); + mxGPUDestroyGPUArray(mu); + mxGPUDestroyGPUArray(iList); + + +} diff --git a/FwBwAddon/neuropixPhase3A_kilosortChanMap_385.mat b/FwBwAddon/neuropixPhase3A_kilosortChanMap_385.mat new file mode 100644 index 0000000000000000000000000000000000000000..b7248b71396d65813a281bb19b3f4c1c124f1590 GIT binary patch literal 2013 zcma*nd05j&8V7I!2thf+VGwkG$PwgB$Uzbgxt05@V(~}_1gd}n5kX@m+#m!I1O=jC zxOOeBB?t)N!6-t434uV_aI~O7z(>wR>q1c$Y`ag}Kla&qW}bKEnR&l|eV*}m4fAt# z1JE{bz~42@n*2>%v=tB(N2HL?C&lA|Aot_m0T`4O;GPssq(nyn=M(TiD3JpA6O#ZW z0)Qj&I}-)i!4X*C{~U6^50JON#`Zo_UQRBx+Pd^2Wv`-6cF%cI+~@)srHa|-)xR)7 z7!@}mybAX*yIfTi%1|yUri&*2k9L{rlm+3-g4}jV>_6PSB)s~Ok-XJ8pRMpc=Y~@a zakKFRczs%^D=)KkSMc)<6yya8Od<#xy9Ya!wG1y9(V}93lFaJagZ61)nC&_@5VSia z@0m`m`3v&^6`zm-uuo`COBvHqx9O;ZN5%}UC~=U!HjiVU^r)2ylzD>(pUwq zhw~xjQcVpRxVWY8jboqWJA&zhaKXMYsbZj1Cy+(|;P{*sM=-7u^OGHgdTlL5OYEoD z*}X5>&mOS*-my7V>=%=Z1X!0?aNuXD`ik_xiVXC(mf}y;-hS${Mrz+Yl~Z9j1Dshy z=VJLshsI?-1-? zmKyZPls|R|?`^)Arfs0P1eShein|&z7bl2LkU$TpUest>urKNvGcFldc+whrBRt`Tp_bvJ`n-dy#zUig@I-*~Fwt=@RM8FXPjo2JBFn@|`(CE_RgI;4q~{ zr<5@T7YgstFIGz!GafM9_@RJ{l_QK-elfU79Qo4`z0aU-gSw0ziW$FBEcrswYbBc0 zOBh{P&e39$W}869Uj5?qA}EtsMCZ_ERCS%l;dgwPAShc}SvG}TD>nyL}a zBgd}rl}QQz3&%QmPS_tg-t0p)AT#gqBQeGB+$VgJ^PX_-K|NMhy%h;(8O~#FV|3(L z9Ao7?cI1VAM{)|3sS2frLYcgQm}`b%WjC|AzHuZ62Qkkkg_YaQ=36e34l851M(Q$) zf3D%rubQ1t%wn;_4sP*guc?g;*>fTL!AS|eM`~c-!CTqnSSQF}*AjEPHU)<_Upg(zfYomWQ8zeb zOs^FgT{W(T&c&%AE1n2Qr)ByH-|h(?a?@+e^Ry->`i6@_{z$T|;Hzfx#dF~!;BzM? z@ndMw<*{~}T6`3#N<2!&*bnHnwccuuCq*#hW3D)ehXeY=<2EViv4oWNT&E&dMfYzS z)hRbJi!SA>h`>-BUn)|9rFUwfFDbwU&_#C%tke0e?T?je$*eNlxu*7l<3pFUNp!=>LY%?GK5*KT^%7;4fGFiqI}{F{2Sin<1uG6bA6stL*q z@u+JFW(D1HWoClpDjCYyog~D6lf=IzK>-x_k=weO3l5McY4%`^5w?>^+iVpx``t=9 za&mqON{u^>=>OfA0z5oAD75uCL?&bme3KmETl|{#T#jIYOWkQs2Yva}hm3+EiJEdV zXVL~j?`>qzT;NburOcfIR#Ko5F3f=y$&_XAR3VM9eWRGc*)Cwkj9*U*U*0KZzH(k! z-uld7Fviuo&KYI7nPqw6)VHJ`BmRA+ea>xl%j?+Y=fuk!tPM+#Y5zHlxPhznRprS< z-{KfAzx=uTPYfLvLmT>V|C$<}&qg3$uctZ-ZIr{BM(zuoirIFrN=-_mFyqW#M9j&d zS2U3OPwNMZM6uW9bE}7DZW?qtuJtL?TOV;Sp7bWsY(d0jM`WZ=E7W>UOuT1@9(*!K zceX9OqZK2GyL(E#DX7u2>dJw%=w~qR>fWlw;Mcd2HVdmy(~VZBB{ucG5jxn}ETxL6 zp*Q*V&fu5Cw9NPd!{BDRpPpF2mNtxgu~zj_*qd~V_W=TzR=mQLOQ rQ#wwPp{}6{l@9KG`*mlVC(S(|_5x4s)ZJ7`=A#2+TXG1?mnHuJQg(;R literal 0 HcmV?d00001 diff --git a/FwBwAddon/preprocessDataSub.m b/FwBwAddon/preprocessDataSub.m new file mode 100644 index 00000000..10ff3a84 --- /dev/null +++ b/FwBwAddon/preprocessDataSub.m @@ -0,0 +1,210 @@ +function [rez, DATA] = preprocessDataSub(ops) +tic; +ops.nt0 = getOr(ops, {'nt0'}, 61); + +if ~isempty(ops.chanMap) + if ischar(ops.chanMap) + load(ops.chanMap); + try + chanMapConn = chanMap(connected>1e-6); + xc = xcoords(connected>1e-6); + yc = ycoords(connected>1e-6); + catch + chanMapConn = 1+chanNums(connected>1e-6); + xc = zeros(numel(chanMapConn), 1); + yc = [1:1:numel(chanMapConn)]'; + end + ops.Nchan = getOr(ops, 'Nchan', sum(connected>1e-6)); + ops.NchanTOT = getOr(ops, 'NchanTOT', numel(connected)); + if exist('fs', 'var') + ops.fs = getOr(ops, 'fs', fs); + end + else + chanMap = ops.chanMap; + chanMapConn = ops.chanMap; + xc = zeros(numel(chanMapConn), 1); + yc = [1:1:numel(chanMapConn)]'; + connected = true(numel(chanMap), 1); + + ops.Nchan = numel(connected); + ops.NchanTOT = numel(connected); + end +else + chanMap = 1:ops.Nchan; + connected = true(numel(chanMap), 1); + + chanMapConn = 1:ops.Nchan; + xc = zeros(numel(chanMapConn), 1); + yc = [1:1:numel(chanMapConn)]'; +end +if exist('kcoords', 'var') + kcoords = kcoords(connected); +else + kcoords = ones(ops.Nchan, 1); +end +NchanTOT = ops.NchanTOT; +NT = ops.NT ; + +rez.ops = ops; +rez.xc = xc; +rez.yc = yc; +if exist('xcoords', 'var') + rez.xcoords = xcoords; + rez.ycoords = ycoords; +else + rez.xcoords = xc; + rez.ycoords = yc; +end +rez.connected = connected; +rez.ops.chanMap = chanMap; +rez.ops.kcoords = kcoords; + +d = dir(ops.fbinary); +nTimepoints = floor(d.bytes/NchanTOT/2); + +rez.ops.tstart = ceil(ops.trange(1) * ops.fs); +rez.ops.tend = min(nTimepoints, ceil(ops.trange(2) * ops.fs)); + +rez.ops.sampsToRead = rez.ops.tend-rez.ops.tstart; + +NTbuff = NT + 4*ops.ntbuff; +Nbatch = ceil(rez.ops.sampsToRead /(NT-ops.ntbuff)); + +% by how many bytes to offset all the batches +twind = rez.ops.tstart * NchanTOT*2; + +%% load data into patches, filter, compute covariance +if isfield(ops,'fslow')&&ops.fslow0@otDaJ)re^M(JpJ8I+mP_w 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 literal 0 HcmV?d00001 diff --git a/configFiles/StandardConfig_MOVEME.m b/configFiles/StandardConfig_MOVEME.m new file mode 100644 index 00000000..23471e03 --- /dev/null +++ b/configFiles/StandardConfig_MOVEME.m @@ -0,0 +1,67 @@ +ops.GPU = 1; % whether to run this code on an Nvidia GPU (much faster, mexGPUall first) +ops.parfor = 0; % whether to use parfor to accelerate some parts of the algorithm +ops.verbose = 1; % whether to print command line progress +ops.showfigures = 1; % whether to plot figures during optimization + +ops.datatype = 'dat'; % binary ('dat', 'bin') or 'openEphys' +ops.fbinary = 'C:\DATA\Spikes\Piroska\piroska_example_short.dat'; % will be created for 'openEphys' +ops.fproc = 'C:\DATA\Spikes\Piroska\temp_wh.dat'; % residual from RAM of preprocessed data +ops.root = 'C:\DATA\Spikes\Piroska'; % 'openEphys' only: where raw files are + +ops.fs = 25000; % sampling rate (omit if already in chanMap file) +ops.NchanTOT = 32; % total number of channels (omit if already in chanMap file) +ops.Nchan = 32; % number of active channels (omit if already in chanMap file) +ops.Nfilt = 64; % number of clusters to use (2-4 times more than Nchan, should be a multiple of 32) +ops.nNeighPC = 12; % visualization only (Phy): number of channnels to mask the PCs, leave empty to skip (12) +ops.nNeigh = 16; % visualization only (Phy): number of neighboring templates to retain projections of (16) + +% options for channel whitening +ops.whitening = 'full'; % type of whitening (default 'full', for 'noSpikes' set options for spike detection below) +ops.nSkipCov = 1; % compute whitening matrix from every N-th batch (1) +ops.whiteningRange = 32; % how many channels to whiten together (Inf for whole probe whitening, should be fine if Nchan<=32) + +% define the channel map as a filename (string) or simply an array +ops.chanMap = 'C:\DATA\Spikes\Piroska\chanMap.mat'; % make this file using createChannelMapFile.m +ops.criterionNoiseChannels = 0.2; % fraction of "noise" templates allowed to span all channel groups (see createChannelMapFile for more info). +% ops.chanMap = 1:ops.Nchan; % treated as linear probe if a chanMap file + +% other options for controlling the model and optimization +ops.Nrank = 3; % matrix rank of spike template model (3) +ops.nfullpasses = 6; % number of complete passes through data during optimization (6) +ops.maxFR = 20000; % maximum number of spikes to extract per batch (20000) +ops.fshigh = 300; % frequency for high pass filtering +% ops.fslow = 2000; % frequency for low pass filtering (optional) +ops.ntbuff = 64; % samples of symmetrical buffer for whitening and spike detection +ops.scaleproc = 200; % int16 scaling of whitened data +ops.NT = 32*1024+ ops.ntbuff;% this is the batch size (try decreasing if out of memory) +% for GPU should be multiple of 32 + ntbuff + +% the following options can improve/deteriorate results. +% when multiple values are provided for an option, the first two are beginning and ending anneal values, +% the third is the value used in the final pass. +ops.Th = [4 10 10]; % threshold for detecting spikes on template-filtered data ([6 12 12]) +ops.lam = [5 20 20]; % large means amplitudes are forced around the mean ([10 30 30]) +ops.nannealpasses = 4; % should be less than nfullpasses (4) +ops.momentum = 1./[20 400]; % start with high momentum and anneal (1./[20 1000]) +ops.shuffle_clusters = 1; % allow merges and splits during optimization (1) +ops.mergeT = .1; % upper threshold for merging (.1) +ops.splitT = .1; % lower threshold for splitting (.1) + +% options for initializing spikes from data +ops.initialize = 'no'; %'fromData' or 'no' +ops.spkTh = -6; % spike threshold in standard deviations (4) +ops.loc_range = [3 1]; % ranges to detect peaks; plus/minus in time and channel ([3 1]) +ops.long_range = [30 6]; % ranges to detect isolated peaks ([30 6]) +ops.maskMaxChannels = 5; % how many channels to mask up/down ([5]) +ops.crit = .65; % upper criterion for discarding spike repeates (0.65) +ops.nFiltMax = 10000; % maximum "unique" spikes to consider (10000) + +% load predefined principal components (visualization only (Phy): used for features) +dd = load('PCspikes2.mat'); % you might want to recompute this from your own data +ops.wPCA = dd.Wi(:,1:7); % PCs + +% options for posthoc merges (under construction) +ops.fracse = 0.1; % binning step along discriminant axis for posthoc merges (in units of sd) +ops.epu = Inf; + +ops.ForceMaxRAMforDat = 20e9; % maximum RAM the algorithm will try to use; on Windows it will autodetect. diff --git a/configFiles/createChannelMapFile.m b/configFiles/createChannelMapFile.m new file mode 100644 index 00000000..d9a254cf --- /dev/null +++ b/configFiles/createChannelMapFile.m @@ -0,0 +1,46 @@ +% create a channel map file + +Nchannels = 32; +connected = true(Nchannels, 1); +chanMap = 1:Nchannels; +chanMap0ind = chanMap - 1; +xcoords = ones(Nchannels,1); +ycoords = [1:Nchannels]'; +kcoords = ones(Nchannels,1); % grouping of channels (i.e. tetrode groups) + +fs = 25000; % sampling frequency +save('C:\DATA\Spikes\20150601_chan32_4_900s\chanMap.mat', ... + 'chanMap','connected', 'xcoords', 'ycoords', 'kcoords', 'chanMap0ind', 'fs') + +%% + +Nchannels = 32; +connected = true(Nchannels, 1); +chanMap = 1:Nchannels; +chanMap0ind = chanMap - 1; + +xcoords = repmat([1 2 3 4]', 1, Nchannels/4); +xcoords = xcoords(:); +ycoords = repmat(1:Nchannels/4, 4, 1); +ycoords = ycoords(:); +kcoords = ones(Nchannels,1); % grouping of channels (i.e. tetrode groups) + +fs = 25000; % sampling frequency + +save('C:\DATA\Spikes\Piroska\chanMap.mat', ... + 'chanMap','connected', 'xcoords', 'ycoords', 'kcoords', 'chanMap0ind', 'fs') +%% + +% kcoords is used to forcefully restrict templates to channels in the same +% channel group. An option can be set in the master_file to allow a fraction +% of all templates to span more channel groups, so that they can capture shared +% noise across all channels. This option is + +% ops.criterionNoiseChannels = 0.2; + +% if this number is less than 1, it will be treated as a fraction of the total number of clusters + +% if this number is larger than 1, it will be treated as the "effective +% number" of channel groups at which to set the threshold. So if a template +% occupies more than this many channel groups, it will not be restricted to +% a single channel group. \ No newline at end of file diff --git a/driftCorrection/clusterAndDriftCorrection.m b/driftCorrection/clusterAndDriftCorrection.m new file mode 100644 index 00000000..cbd74df7 --- /dev/null +++ b/driftCorrection/clusterAndDriftCorrection.m @@ -0,0 +1,143 @@ +nProj = size(uproj,2); + +uBase = zeros(1e4, nProj); +nS = zeros(1e4, 1); +ncurr = 1; + +for ibatch = 1:numel(indBatch) + % merge in with existing templates + uS = uproj(indBatch{ibatch}, :); + [nSnew, iNonMatch] = merge_spikes0(uBase(1:ncurr,:), nS(1:ncurr), uS, ops.crit); + nS(1:ncurr) = nSnew; + % + % reduce non-matches + [uNew, nSadd] = reduce_clusters0(uS(iNonMatch,:), ops.crit); + + % add new spikes to list + uBase(ncurr + [1:size(uNew,1)], :) = uNew; + nS(ncurr + [1:size(uNew,1)]) = nSadd; + + ncurr = ncurr + size(uNew,1); + + if ncurr>1e4 + break; + end +end +% +nS = nS(1:ncurr); +uBase = uBase(1:ncurr, :); + +[~, itsort] = sort(nS, 'descend'); + +%% initialize U +% compute covariance matrix +sigDrift = 15; +sigShift = 20; +chanDists= bsxfun(@minus, rez.yc, rez.yc').^2 + bsxfun(@minus, rez.xc, rez.xc').^2; +iCovChans = my_inv(exp(-chanDists/(2*sigDrift^2)), 1e-6); + +Nfilt = ops.Nfilt; +lam = ops.lam(1) * ones(Nfilt, 1, 'single'); + +U = gpuArray(uBase(itsort(1:Nfilt), :))'; +mu = sum(U.^2,1)'.^.5; +U = normc(U); +% +deltay = zeros(ops.Nchan, numel(indBatch)); + +for i = 1:10 + % resample spatial masks up and down + Uup = shift_data(reshape(U, ops.Nchan, []), sigShift, rez.yc, rez.xc, iCovChans, sigDrift, rez.Wrot); + Uup = reshape(Uup, size(U)); + Udown = shift_data(reshape(U, ops.Nchan, []), -sigShift, rez.yc, rez.xc, iCovChans, sigDrift, rez.Wrot); + Udown = reshape(Udown, size(U)); + + mu = repmat(mu, 3, 1); + lam = repmat(lam, 3, 1); + + dWU = zeros(Nfilt, nProj, 'single'); + nToT = gpuArray.zeros(Nfilt, 1, 'single'); + Cost = gpuArray(single(0)); + % + for ibatch = 1:numel(indBatch) + % find clusters + clips = gpuArray(uproj(indBatch{ibatch}, :))'; + nSpikes = size(clips,2); + clips = reshape(clips, ops.Nchan, []); + + % resample clips by the delta y + clips = shift_data(clips, deltay(:, ibatch), rez.yc, rez.xc, iCovChans, sigDrift, rez.Wrot); + clips = reshape(clips, size(U,1), [])'; + + ci = clips * [Udown U Uup]; + + ci = bsxfun(@plus, ci, (mu .* lam)'); + cf = bsxfun(@rdivide, ci.^2, 1 + lam'); + cf = bsxfun(@minus, cf, (mu.^2.*lam)'); + + cf = reshape(cf,[], Nfilt, 3); + [Mmax, imax] = max(cf, [], 2); + [~, i3max] = max(Mmax, [], 3); +% keyboard; + + % determine added correction to delta y + + % determine cluster assignment for this iteration + [max_cf, id] = max(cf(:,:,2), [], 2); + id = gather_try(id); + L = gpuArray.zeros(Nfilt, nSpikes, 'single'); + L(id' + [0:Nfilt:(Nfilt*nSpikes-1)]) = 1; + dWU = dWU + L * clips; + nToT = nToT + sum(L, 2); + Cost = Cost + mean(max_cf); + end + dWU = bsxfun(@rdivide, dWU, nToT); + + U = dWU'; + mu = sum(U.^2,1)'.^.5; + U = normc(U); + Cost = Cost/size(inds,2); + + % smooth out corrections + + % disp(Cost) + + % plot(sort(log(1+nToT))) + % drawnow +end +%% +Nchan = ops.Nchan; +Nfilt = ops.Nfilt; +wPCA = ops.wPCA(:,1:3); +Urec = reshape(U, Nchan, size(wPCA,2), Nfilt); + +nt0 = 61; +Urec= permute(Urec, [2 1 3]); +Wrec = reshape(wPCA * Urec(:,:), nt0, Nchan, Nfilt); + +Wrec = gather_try(Wrec); +Nrank = 3; +W = zeros(nt0, Nfilt, Nrank, 'single'); +U = zeros(Nchan, Nfilt, Nrank, 'single'); +for j = 1:Nfilt + [w sv u] = svd(Wrec(:,:,j)); + w = w * sv; + + Sv = diag(sv); + W(:,j,:) = w(:, 1:Nrank)/sum(Sv(1:ops.Nrank).^2).^.5; + U(:,j,:) = u(:, 1:Nrank); +end + +Uinit = U; +Winit = W; +mu = gather_try(single(mu)); +muinit = mu; + +WUinit = zeros(nt0, Nchan, Nfilt); +for j = 1:Nfilt + WUinit(:,:,j) = muinit(j) * Wrec(:,:,j); +end +WUinit = single(WUinit); +%% + + diff --git a/driftCorrection/collectRawClips.m b/driftCorrection/collectRawClips.m new file mode 100644 index 00000000..86271451 --- /dev/null +++ b/driftCorrection/collectRawClips.m @@ -0,0 +1,253 @@ +function [rez, uproj, indBatch] = collectRawClips(ops) +tic; +uproj = []; + + +if ~isempty(ops.chanMap) + if ischar(ops.chanMap) + load(ops.chanMap); + try + chanMapConn = chanMap(connected>1e-6); + xc = xcoords(connected>1e-6); + yc = ycoords(connected>1e-6); + catch + chanMapConn = 1+chanNums(connected>1e-6); + xc = zeros(numel(chanMapConn), 1); + yc = [1:1:numel(chanMapConn)]'; + end + else + chanMap = ops.chanMap; + chanMapConn = ops.chanMap; + xc = zeros(numel(chanMapConn), 1); + yc = [1:1:numel(chanMapConn)]'; + connected = true(numel(chanMap), 1); + end +else + chanMap = 1:ops.Nchan; + connected = true(numel(chanMap), 1); + + chanMapConn = 1:ops.Nchan; + xc = zeros(numel(chanMapConn), 1); + yc = [1:1:numel(chanMapConn)]'; +end +if ~exist('kcoords', 'var') + kcoords = ones(ops.Nchan, 1); +end +NchanTOT = ops.NchanTOT; +NT = ops.NT ; + +rez.xc = xc; +rez.yc = yc; +rez.connected = connected; +rez.ops = ops; +rez.ops.chanMap = chanMap; +rez.ops.kcoords = kcoords; + +d = dir(ops.fbinary); +ops.sampsToRead = floor(d.bytes/NchanTOT/2); + +if ispc + dmem = memory; + memfree = dmem.MemAvailableAllArrays/8; + memallocated = min(ops.ForceMaxRAMforDat, dmem.MemAvailableAllArrays) - memfree; + memallocated = max(0, memallocated); +else + memallocated = ops.ForceMaxRAMforDat; +end +nint16s = memallocated/2; + +NTbuff = NT + 4*ops.ntbuff; +Nbatch = ceil(d.bytes/2/NchanTOT /(NT-ops.ntbuff)); +Nbatch_buff = floor(4/5 * nint16s/ops.Nchan /(NT-ops.ntbuff)); % factor of 4/5 for storing PCs of spikes +Nbatch_buff = min(Nbatch_buff, Nbatch); + +%% load data into patches, filter, compute covariance +if isfield(ops,'fslow')&&ops.fslowsize(uproj,1) + uproj(1e6 + size(uproj,1), 1) = 0; + end + + uproj(i0 + (1:numel(row)), :) = gather_try(uS); + indBatch{ibatch} = i0 + (1:numel(row)); + i0 = i0 + numel(row); + end +end + +if strcmp(ops.initialize, 'fromData') + uproj(i0+1:end, :) = []; +end +Wrot = gather_try(Wrot); +rez.Wrot = Wrot; + +fclose(fid); +if ops.verbose + fprintf('Time %3.2f. Collected clips... \n', toc); +end + + +rez.temp.Nbatch = Nbatch; +rez.temp.Nbatch_buff = Nbatch_buff; + diff --git a/driftCorrection/get_Uupdown.m b/driftCorrection/get_Uupdown.m new file mode 100644 index 00000000..2a4905c0 --- /dev/null +++ b/driftCorrection/get_Uupdown.m @@ -0,0 +1,14 @@ + +function [Uup, Udown] = get_Uupdown(U, space_lag, CovChans, Wrot, ops) + +Uwh = (Wrot * (CovChans/Wrot)) * U; + + +Udown = reshape(U, 2, ops.Nchan/2, [], size(U,2)); +Udown(:,2:end,:,:) = Udown(:,1:end-1,:,:); +Udown = reshape(Udown, size(U)); +Udown = normc(Udown); +Uup = reshape(U, 2, ops.Nchan/2, [], size(U,2)); +Uup(:,1:end-1,:,:) = Uup(:,2:end,:,:); +Uup = reshape(Uup, size(U)); +Uup = normc(Uup); \ No newline at end of file diff --git a/driftCorrection/shift_data.m b/driftCorrection/shift_data.m new file mode 100644 index 00000000..5b467b3c --- /dev/null +++ b/driftCorrection/shift_data.m @@ -0,0 +1,7 @@ +function data = shift_data(data, dy, ycoords, xcoords, iCovChans, sigDrift, Wrot) + +shiftM = shift_matrix(dy, ycoords, xcoords, iCovChans, sigDrift, Wrot); +data = shiftM * data; + + + diff --git a/driftCorrection/shift_matrix.m b/driftCorrection/shift_matrix.m new file mode 100644 index 00000000..70313ed2 --- /dev/null +++ b/driftCorrection/shift_matrix.m @@ -0,0 +1,11 @@ +function shiftM = shift_matrix(dy, ycoords, xcoords, iCovChans, sig, Wrot) + + +yminusy = bsxfun(@minus, ycoords - dy, ycoords').^2 + ... + bsxfun(@minus, xcoords , xcoords').^2; + +newSamp = exp(- yminusy/(2*sig^2)); + +shiftM = Wrot * ((newSamp * iCovChans)/Wrot); + + diff --git a/eMouse/benchmark_simulation.m b/eMouse/benchmark_simulation.m new file mode 100644 index 00000000..711900d6 --- /dev/null +++ b/eMouse/benchmark_simulation.m @@ -0,0 +1,57 @@ +function benchmark_simulation(rez, GTfilepath) + +load(GTfilepath) + +try + testClu = 1 + rez.st3(:,5) ; % if the auto merges were performed + flag = 1; +catch + testClu = rez.st3(:,2) ;% no attempt to merge clusters + flag = 0; +end + +testRes = rez.st3(:,1) ; + +[allScores, allFPrates, allMissRates, allMerges] = ... + compareClustering2(gtClu, gtRes, testClu, testRes, []); + +% +clid = unique(gtClu); +clear gtimes +for k = 1:length(clid) + gtimes{k} = double(gtRes(gtClu==clid(k))); +end +%% + +figure + +plot(sort(cellfun(@(x) x(1), allFPrates)), '-*b', 'Linewidth', 2) +hold all +plot(sort(cellfun(@(x) x(1), allMissRates)), '-*r', 'Linewidth', 2) +plot(sort(cellfun(@(x) x(end), allFPrates)), 'b', 'Linewidth', 2) +plot(sort(cellfun(@(x) x(end), allMissRates)), 'r', 'Linewidth', 2) +ylim([0 1]) +box off + +finalScores = cellfun(@(x) x(end), allScores); +fprintf('%d / %d good cells, score > 0.8 (pre-merge) \n', sum(cellfun(@(x) x(1), allScores)>.8), numel(allScores)) +fprintf('%d / %d good cells, score > 0.8 (post-merge) \n', sum(cellfun(@(x) x(end), allScores)>.8), numel(allScores)) + +nMerges = cellfun(@(x) numel(x)-1, allMerges); +fprintf('Mean merges per good cell %2.2f \n', mean(nMerges(finalScores>.8))) + +% disp(cellfun(@(x) x(end), allScores)) + +xlabel('ground truth cluster') +ylabel('fractional error') + +legend('false positives (initial)', 'miss rates (initial)', 'false positives (best)', 'miss rates (best)') +legend boxoff +set(gca, 'Fontsize', 20) +set(gcf, 'Color', 'w') + +if flag==1 + title('After Kilosort AUTO merges') +else + title('Before Kilosort AUTO merges') +end diff --git a/eMouse/compareClustering2.m b/eMouse/compareClustering2.m new file mode 100644 index 00000000..938b28f0 --- /dev/null +++ b/eMouse/compareClustering2.m @@ -0,0 +1,141 @@ + + +function [allScores, allFPs, allMisses, allMerges] = compareClustering2(cluGT, resGT, cluTest, resTest, datFilename) +% function compareClustering(cluGT, resGT, cluTest, resTest[, datFilename]) +% - clu and res variables are length nSpikes, for ground truth (GT) and for +% the clustering to be evaluated (Test). + + +if nargin<5 + datFilename = []; +end + +GTcluIDs = unique(cluGT); +testCluIDs = unique(cluTest); +jitter = 12; + +nSp = zeros(max(testCluIDs), 1); +for j = 1:max(testCluIDs); + nSp(j) = max(1, sum(cluTest==j)); +end +nSp0 = nSp; + +for cGT = 1:length(GTcluIDs) +% fprintf(1,'ground truth cluster ID = %d (%d spikes)\n', GTcluIDs(cGT), sum(cluGT==GTcluIDs(cGT))); + + rGT = int32(resGT(cluGT==GTcluIDs(cGT))); + +% S = sparse(numel(rGT), max(testCluIDs)); + S = spalloc(numel(rGT), max(testCluIDs), numel(rGT) * 10); + % find the initial best match + mergeIDs = []; + scores = []; + falsePos = []; + missRate = []; + + igt = 1; + + nSp = nSp0; + nrGT = numel(rGT); + flag = false; + for j = 1:numel(cluTest) + while (resTest(j) > rGT(igt) + jitter) + % the curent spikes is now too large compared to GT, advance the GT + igt = igt + 1; + if igt>nrGT + flag = true; + break; + end + end + if flag + break; + end + + if resTest(j)>rGT(igt)-jitter + % we found a match, add a tick to the right cluster +% numMatch(cluTest(j)) = numMatch(cluTest(j)) + 1; + S(igt, cluTest(j)) = 1; + end + end + numMatch = sum(S,1)'; + misses = (nrGT-numMatch)/nrGT; % missed these spikes, as a proportion of the total true spikes + fps = (nSp-numMatch)./nSp; % number of comparison spikes not near a GT spike, as a proportion of the number of guesses + % + % for cTest = 1:length(testCluIDs) +% rTest = int32(resTest(cluTest==testCluIDs(cTest))); +% +% [miss, fp] = compareSpikeTimes(rTest, rGT); +% misses(cTest) = miss; +% fps(cTest) = fp; +% +% end +% + sc = 1-(fps+misses); + best = find(sc==max(sc),1); + mergeIDs(end+1) = best; + scores(end+1) = sc(best); + falsePos(end+1) = fps(best); + missRate(end+1) = misses(best); + +% fprintf(1, ' found initial best %d: score %.2f (%d spikes, %.2f FP, %.2f miss)\n', ... +% mergeIDs(1), scores(1), sum(cluTest==mergeIDs(1)), fps(best), misses(best)); + + S0 = S(:, best); + nSp = nSp + nSp0(best); + while scores(end)>0 && (length(scores)==1 || ( scores(end)>(scores(end-1) + 1*0.01) && scores(end)<=0.99 )) + % find the best match + S = bsxfun(@max, S, S0); + + numMatch = sum(S,1)'; + misses = (nrGT-numMatch)/nrGT; % missed these spikes, as a proportion of the total true spikes + fps = (nSp-numMatch)./nSp; % number of comparison spikes not near a GT spike, as a proportion of the number of guesses + + sc = 1-(fps+misses); + best = find(sc==max(sc),1); + mergeIDs(end+1) = best; + scores(end+1) = sc(best); + falsePos(end+1) = fps(best); + missRate(end+1) = misses(best); + +% fprintf(1, ' best merge with %d: score %.2f (%d/%d new/total spikes, %.2f FP, %.2f miss)\n', ... +% mergeIDs(end), scores(end), nSp0(best), nSp(best), fps(best), misses(best)); + + S0 = S(:, best); + nSp = nSp + nSp0(best); + + end + + if length(scores)==1 || scores(end)>(scores(end-1)+0.01) + % the last merge did help, so include it + allMerges{cGT} = mergeIDs(1:end); + allScores{cGT} = scores(1:end); + allFPs{cGT} = falsePos(1:end); + allMisses{cGT} = missRate(1:end); + else + % the last merge actually didn't help (or didn't help enough), so + % exclude it + allMerges{cGT} = mergeIDs(1:end-1); + allScores{cGT} = scores(1:end-1); + allFPs{cGT} = falsePos(1:end-1); + allMisses{cGT} = missRate(1:end-1); + end + +end + +initScore = zeros(1, length(GTcluIDs)); +finalScore = zeros(1, length(GTcluIDs)); +numMerges = zeros(1, length(GTcluIDs)); +fprintf(1, '\n\n--Results Summary--\n') +for cGT = 1:length(GTcluIDs) +% +% fprintf(1,'ground truth cluster ID = %d (%d spikes)\n', GTcluIDs(cGT), sum(cluGT==GTcluIDs(cGT))); +% fprintf(1,' initial score: %.2f\n', allScores{cGT}(1)); +% fprintf(1,' best score: %.2f (after %d merges)\n', allScores{cGT}(end), length(allScores{cGT})-1); +% + initScore(cGT) = allScores{cGT}(1); + finalScore(cGT) = allScores{cGT}(end); + numMerges(cGT) = length(allScores{cGT})-1; +end + +fprintf(1, 'median initial score: %.2f; median best score: %.2f\n', median(initScore), median(finalScore)); +fprintf(1, 'total merges required: %d\n', sum(numMerges)); diff --git a/eMouse/config_eMouse.m b/eMouse/config_eMouse.m new file mode 100644 index 00000000..16b15ecf --- /dev/null +++ b/eMouse/config_eMouse.m @@ -0,0 +1,65 @@ +clear ops +ops.GPU = useGPU; % whether to run this code on an Nvidia GPU (much faster, mexGPUall first) +ops.parfor = 0; % whether to use parfor to accelerate some parts of the algorithm +ops.verbose = 1; % whether to print command line progress +ops.showfigures = 1; % whether to plot figures during optimization + +ops.datatype = 'dat'; % binary ('dat', 'bin') or 'openEphys' +ops.fbinary = fullfile(fpath, 'sim_binary.dat'); % will be created for 'openEphys' +ops.fproc = fullfile(fpath, 'temp_wh.dat'); % residual from RAM of preprocessed data +ops.root = fpath; % 'openEphys' only: where raw files are +% define the channel map as a filename (string) or simply an array +ops.chanMap = fullfile(fpath, 'chanMap.mat'); % make this file using createChannelMapFile.m +% ops.chanMap = 1:ops.Nchan; % treated as linear probe if unavailable chanMap file + +ops.Nfilt = 64; % number of clusters to use (2-4 times more than Nchan, should be a multiple of 32) +ops.nNeighPC = 12; % visualization only (Phy): number of channnels to mask the PCs, leave empty to skip (12) +ops.nNeigh = 16; % visualization only (Phy): number of neighboring templates to retain projections of (16) + +% options for channel whitening +ops.whitening = 'full'; % type of whitening (default 'full', for 'noSpikes' set options for spike detection below) +ops.nSkipCov = 1; % compute whitening matrix from every N-th batch (1) +ops.whiteningRange = 32; % how many channels to whiten together (Inf for whole probe whitening, should be fine if Nchan<=32) + +ops.criterionNoiseChannels = 0.2; % fraction of "noise" templates allowed to span all channel groups (see createChannelMapFile for more info). + +% other options for controlling the model and optimization +ops.Nrank = 3; % matrix rank of spike template model (3) +ops.nfullpasses = 6; % number of complete passes through data during optimization (6) +ops.maxFR = 20000; % maximum number of spikes to extract per batch (20000) +ops.fshigh = 200; % frequency for high pass filtering +% ops.fslow = 2000; % frequency for low pass filtering (optional) +ops.ntbuff = 64; % samples of symmetrical buffer for whitening and spike detection +ops.scaleproc = 200; % int16 scaling of whitened data +ops.NT = 128*1024+ ops.ntbuff;% this is the batch size (try decreasing if out of memory) +% for GPU should be multiple of 32 + ntbuff + +% the following options can improve/deteriorate results. +% when multiple values are provided for an option, the first two are beginning and ending anneal values, +% the third is the value used in the final pass. +ops.Th = [4 10 10]; % threshold for detecting spikes on template-filtered data ([6 12 12]) +ops.lam = [5 5 5]; % large means amplitudes are forced around the mean ([10 30 30]) +ops.nannealpasses = 4; % should be less than nfullpasses (4) +ops.momentum = 1./[20 400]; % start with high momentum and anneal (1./[20 1000]) +ops.shuffle_clusters = 1; % allow merges and splits during optimization (1) +ops.mergeT = .1; % upper threshold for merging (.1) +ops.splitT = .1; % lower threshold for splitting (.1) + +% options for initializing spikes from data +ops.initialize = 'fromData'; %'fromData' or 'no' +ops.spkTh = -6; % spike threshold in standard deviations (4) +ops.loc_range = [3 1]; % ranges to detect peaks; plus/minus in time and channel ([3 1]) +ops.long_range = [30 6]; % ranges to detect isolated peaks ([30 6]) +ops.maskMaxChannels = 5; % how many channels to mask up/down ([5]) +ops.crit = .65; % upper criterion for discarding spike repeates (0.65) +ops.nFiltMax = 10000; % maximum "unique" spikes to consider (10000) + +% load predefined principal components (visualization only (Phy): used for features) +dd = load('PCspikes2.mat'); % you might want to recompute this from your own data +ops.wPCA = dd.Wi(:,1:7); % PCs + +% options for posthoc merges (under construction) +ops.fracse = 0.1; % binning step along discriminant axis for posthoc merges (in units of sd) +ops.epu = Inf; + +ops.ForceMaxRAMforDat = 20e9; % maximum RAM the algorithm will try to use; on Windows it will autodetect. diff --git a/eMouse/make_eMouseChannelMap.m b/eMouse/make_eMouseChannelMap.m new file mode 100644 index 00000000..74b006e8 --- /dev/null +++ b/eMouse/make_eMouseChannelMap.m @@ -0,0 +1,47 @@ +function make_eMouseChannelMap(fpath) +% create a channel Map file for simulated data (eMouse) + +% here I know a priori what order my channels are in. So I just manually +% make a list of channel indices (and give +% an index to dead channels too). chanMap(1) is the row in the raw binary +% file for the first channel. chanMap(1:2) = [33 34] in my case, which happen to +% be dead channels. + +chanMap = [33 34 8 10 12 14 16 18 20 22 24 26 28 30 32 ... + 7 9 11 13 15 17 19 21 23 25 27 29 31 1 2 3 4 5 6]; + +% the first thing Kilosort does is reorder the data with data = data(chanMap, :). +% Now we declare which channels are "connected" in this normal ordering, +% meaning not dead or used for non-ephys data + +connected = true(34, 1); connected(1:2) = 0; + +% now we define the horizontal (x) and vertical (y) coordinates of these +% 34 channels. For dead or nonephys channels the values won't matter. Again +% I will take this information from the specifications of the probe. These +% are in um here, but the absolute scaling doesn't really matter in the +% algorithm. + +xcoords = 20 * [NaN NaN 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0]; +ycoords = 20 * [NaN NaN 7 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 ... + 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24]; + +% Often, multi-shank probes or tetrodes will be organized into groups of +% channels that cannot possibly share spikes with the rest of the probe. This helps +% the algorithm discard noisy templates shared across groups. In +% this case, we set kcoords to indicate which group the channel belongs to. +% In our case all channels are on the same shank in a single group so we +% assign them all to group 1. + +kcoords = [NaN NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]; + +% at this point in Kilosort we do data = data(connected, :), ycoords = +% ycoords(connected), xcoords = xcoords(connected) and kcoords = +% kcoords(connected) and no more channel map information is needed (in particular +% no "adjacency graphs" like in KlustaKwik). +% Now we can save our channel map for the eMouse. + +% would be good to also save the sampling frequency here +fs = 25000; + +save(fullfile(fpath, 'chanMap.mat'), 'chanMap', 'connected', 'xcoords', 'ycoords', 'kcoords', 'fs') \ No newline at end of file diff --git a/eMouse/make_eMouseData.m b/eMouse/make_eMouseData.m new file mode 100644 index 00000000..c9ce4bdd --- /dev/null +++ b/eMouse/make_eMouseData.m @@ -0,0 +1,105 @@ +function make_eMouseData(fpath, useGPU) +% this script makes binary file of simulated eMouse recording + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% you can play with the parameters just below here to achieve a signal more similar to your own data!!! +mu_mean = 15; % mean of mean spike amplitudes. 15 should contain enough clustering errors to be instructive (in Phy). 20 is good quality data, 10 will miss half the neurons, +nn = 30; % number of simulated neurons (30) +t_record = 1000; % duration in seconds of simulation. longer is better (and slower!) (1000) +fr_bounds = [1 10]; % min and max of firing rates ([1 10]) +tsmooth = 3; % gaussian smooth the noise with sig = this many samples (increase to make it harder) (3) +chsmooth = 1; % smooth the noise across channels too, with this sig (increase to make it harder) (1) +amp_std = .25; % standard deviation of single spike amplitude variability (increase to make it harder, technically std of gamma random variable of mean 1) (.25) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +rng('default'); +rng(101); % set the seed of the random number generator + +dat = load('simulation_parameters'); % these are inside Kilosort repo +fs = dat.fs; % sampling rate +wav = dat.waves; % mean waveforms for all neurons +wav = wav(:,:, randperm(size(wav,3), nn)); + +Nchan = numel(dat.xc) + 2; % we add two fake dead channels +NN = size(wav,3); % number of neurons + +chanMap = [33 34 8 10 12 14 16 18 20 22 24 26 28 30 32 ... + 7 9 11 13 15 17 19 21 23 25 27 29 31 1 2 3 4 5 6]; % this is the fake channel map I made + +invChanMap(chanMap) = [1:34]; % invert the channel map here + +mu = mu_mean * (1 + (rand(NN,1) - 0.5)); % create variability in mean amplitude +fr = fr_bounds(1) + (fr_bounds(2)-fr_bounds(1)) * rand(NN,1); % create variability in firing rates + +% totfr = sum(fr); % total firing rate + +spk_times = []; +clu = []; +for j = 1:length(fr) + dspks = int64(geornd(1/(fs/fr(j)), ceil(2*fr(j)*t_record),1)); + dspks(dspks0 + enoise(1:buff, :) = enoise_old(NT-buff + [1:buff], :); + end + + dat = enoise; + dat = my_conv2(dat, [tsmooth chsmooth], [1 2]); + dat = zscore(dat, 1, 1); + dat = gather_try(dat); + + if t_all>0 + dat(1:buff/2, :) = dat_old(NT-buff/2 + [1:buff/2], :); + end + + dat(:, [1 2]) = 0; % these are the "dead" channels + + % now we add spikes on non-dead channels. + ibatch = (spk_times >= t_all*fs) & (spk_times < t_all*fs+NT-buff); + ts = spk_times(ibatch) - t_all*fs; + ids = clu(ibatch); + am = amps(ibatch); + + for i = 1:length(ts) + dat(ts(i) + int64([1:82]), 2 + [1:32]) = dat(ts(i) + int64([1:82]), 2 + [1:32]) +... + mu(ids(i)) * am(i) * wav(:,:,ids(i)); + end + + dat_old = dat; + dat = int16(200 * dat); + fwrite(fidW, dat(1:(NT-buff),invChanMap)', 'int16'); + t_all = t_all + (NT-buff)/fs; + + enoise_old = enoise; +end + +fclose(fidW); % all done + +gtRes = spk_times + 42; % add back the time of the peak for the templates (answer to life and everything) +gtClu = clu; + +save(fullfile(fpath, 'eMouseGroundTruth'), 'gtRes', 'gtClu') \ No newline at end of file diff --git a/eMouse/master_eMouse.m b/eMouse/master_eMouse.m new file mode 100644 index 00000000..b99809b8 --- /dev/null +++ b/eMouse/master_eMouse.m @@ -0,0 +1,64 @@ +useGPU = 1; % do you have a GPU? Kilosorting 1000sec of 32chan simulated data takes 55 seconds on gtx 1080 + M2 SSD. + +fpath = 'F:\DATA\Spikes\eMouse\'; % where on disk do you want the simulation? ideally and SSD... +if ~exist(fpath, 'dir'); mkdir(fpath); end + +% This part adds paths +addpath(genpath('D:\CODE\GitHub\KiloSort')) % path to kilosort folder +addpath(genpath('D:\CODE\GitHub\npy-matlab')) % path to npy-matlab scripts +pathToYourConfigFile = 'D:\CODE\GitHub\KiloSort\eMouse'; % for this example it's ok to leave this path inside the repo, but for your own config file you *must* put it somewhere else! + +% Run the configuration file, it builds the structure of options (ops) +run(fullfile(pathToYourConfigFile, 'config_eMouse.m')) + +% This part makes the channel map for this simulation +make_eMouseChannelMap(fpath); + +% This part simulates and saves data. There are many options you can change inside this +% function, if you want to vary the SNR or firing rates, or number of cells etc. +% You can vary these to make the simulated data look more like your data. +% Currently it is set to relatively low SNR for illustration purposes in Phy. +make_eMouseData(fpath, useGPU); +% +% This part runs the normal Kilosort processing on the simulated data +[rez, DATA, uproj] = preprocessData(ops); % preprocess data and extract spikes for initialization +rez = fitTemplates(rez, DATA, uproj); % fit templates iteratively +rez = fullMPMU(rez, DATA);% extract final spike times (overlapping extraction) + +% This runs the benchmark script. It will report both 1) results for the +% clusters as provided by Kilosort (pre-merge), and 2) results after doing the best +% possible merges (post-merge). This last step is supposed to +% mimic what a user would do in Phy, and is the best achievable score +% without doing splits. +benchmark_simulation(rez, fullfile(fpath, 'eMouseGroundTruth.mat')); + +% save python results file for Phy +rezToPhy(rez, fpath); + +fprintf('Kilosort took %2.2f seconds vs 72.77 seconds on GTX 1080 + M2 SSD \n', toc) + +% now fire up Phy and check these results. There should still be manual +% work to be done (mostly merges, some refinements of contaminated clusters). +%% AUTO MERGES +% after spending quite some time with Phy checking on the results and understanding the merge and split functions, +% come back here and run Kilosort's automated merging strategy. This block +% will overwrite the previous results and python files. Load the results in +% Phy again: there should be no merges left to do (with the default simulation), but perhaps a few splits +% / cleanup. On realistic data (i.e. not this simulation) there will be drift also, which will usually +% mean there are merges left to do even after this step. +% Kilosort's AUTO merges should not be confused with the "best" merges done inside the +% benchmark (those are using the real ground truth!!!) + +rez = merge_posthoc2(rez); +benchmark_simulation(rez, fullfile(fpath, 'eMouseGroundTruth.mat')); + +% save python results file for Phy +rezToPhy(rez, fpath); + +%% save and clean up +% save matlab results file for future use (although you should really only be using the manually validated spike_clusters.npy file) +save(fullfile(fpath, 'rez.mat'), 'rez', '-v7.3'); + +% remove temporary file +delete(ops.fproc); +%% diff --git a/eMouse/readme_eMouse.txt b/eMouse/readme_eMouse.txt new file mode 100644 index 00000000..3e05a643 --- /dev/null +++ b/eMouse/readme_eMouse.txt @@ -0,0 +1,3 @@ +We made some scripts to generate artificial data with similar statistics to real recordings. Run master_eMouse to verify that Kilosort has been installed correctly, as well as to understand how the various options are being passed in and used, and what you should be seeing in Phy after running Kilosort on your own data. This example has been made intentionally hard, so that the are still some clustering errors which you can visualize (and correct for!) in Phy. + +The scripts also measure the accuracy of the algorithm at two different stages (before and after the AUTO merges). The accuracy is measured both in terms of the clusters found by Kilosort, and in terms of the best achievable accuracy after merging those clusters optimally (with knowledge of the ground truth). The last set of results is supposed to mimic the kind of results you would get if you were only doing merges in Phy, and you knew exactly what merges are best. \ No newline at end of file diff --git a/eMouse/simulation_parameters.mat b/eMouse/simulation_parameters.mat new file mode 100644 index 0000000000000000000000000000000000000000..a2f0b4dfe26b861c7df1f028d084cbf09764bbf0 GIT binary patch literal 688749 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%0Dd9%Wu}9<;Unpk`B_r@Ttl#KkQZ;7TqCi*IoMk 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%0D&fLW}Vu z$Y7h*&4O_}Pzf3HyTWDK4>GT!_a&tf^FB5OQuA+@yGzuph&hsQWz|7P_`oULQ@h+h z2%gqb7=S(^1<4h9%RW}4FzTg9`reK)d}LJrx%7wqcj~pUz@B^ddo|(g|Le*4mAJSs zA6RI#Qt<{?5iSfwixG)u?O1?0w*d-=aywW>Z?QHXA0@#qs5k)7-W<~DCur8lfgDwN zB?_$<{K1JCd^oh60jiZH0DWvfRLKcF%`LjHx2kTIr(`%%MjAF8aa$Sx5;ukSIMhDI zn8_0XG~)v-P@v2+J~)~Smau%b+_O+L1;{IUphL@9c^K+!<+O54)Hn!6j89JxU3Pu` zZYl9-EP5}={6M+Oq@fBI<#Ls6D7y~li1rETOtuP@Z^3gsQlmU(-D&7Vz=DArzM9hP zKpS&m3vE$mj6I-{%9KdoY=aF>1_N$@%?G?eFG{Xv<xp_ZTOm&W17xeDa_JpV|ae5`LnUH(3S7cmpg!ZWD&6u=u z-4TAbeTRzT*0XbOfwZ+&2fN<^efnqn>rXQ2}HzIFNHFnxUuOD`1nH_HCxyQ0X^?*-eq*#YVfAkRRrpAhlw#Z{YmL zQ*jX^rzi!`^W#3pU584@Igs8!LG4kgu<8#V+tz4RBkB1I(g{8TJN9DsKE<#i@$@4( z1Rx(ZwY8L{Y;Db9Re-x#L%X4(HYyhszmuTHFt`7Q|; zm6-p>$t)@VQVoPq#szm|PE6Kb=o|H$jTO$9+)d^*YDs^dEcw;LCVa@^S6rLGt--Pa z+?A+8&&-?g@Lw){BEt8%?(4nXrS6Ar!nTP6#4s39eQU}8z(0>f1*w0${Y9%I`ue4h z`5e-C&*!EpShk$y1L#R7{bxf*^fpfkZ@Zbg%;AL>;D6b!f1h5W%K^@8yq#sGLnb@y zRgIopC#ot49Zb%kTe?2JNR5A;E?>CqCt7#S)Q5Q0jmI(413c#8(0Y8Ctgl9N7WVM; zQex28Ew`DT`zHTV=~CWg+Y2NxPFt?og#d7Ee`-DpjA1YZfTc=%i79EdV7Bv(s$7xB z2$#ejWvTBye;TvZW3j#8ub_jiOC8j74J2sZURhs{nQwSmA%PDKt%z)fp`7O@T!ciU z@71>cyuOw?AE`0secQ0oHZk<`Ab0J;mZ2)J#_#Utxqp9UwI~8U_cIpHLA)cM1QV1w z6EWtGK8vn5rS^6_b;9dG*$zJ~ZVJ3B|2x5g)q5pyMb&gU`WP2J&9kPkspN>3k3Na= zYUO?~rPK~&C*K$`K9pioTbp7cfu1!bXT%55XQ9!-OXnEt4fBg%zP6TM4!6U3{V@~$ zwanblNlSRZ@0G$1PUz2zIzbRi9P;{hmJ3!l)c>v^*z+JJXGInrD%N8GX0U5cu$SZI2I}>i~VP(7^zGiH4DB=7U8cIKB@Q>)8*OLNM!Td25ypq+%@naz|So z)@4+sz_dSNd!|E=_y@5rQ`a_-e?VBarTY8<+-VU%GMxD(%(>sB;2>D5>UXajl&p5; zqzkc6v6n-Gt4#D0Z`9+NZoTY5~J(Cq4sjud+0DJycFiV7^mD~g*-{O_yXczK-o>1&P= z`7H*#1CX>NNDi`Sj_52ci-XA%)mNrofI)irY=8E7~SI9$Ucn5-0$l~3p0U>Vm z$LyZf1t%~E1sh~=*6dM6>|TCMi=k7n!v3h^%sIQiD;L+-W~W|GVa2#2p%cj(KhT2> z<*o`5vpo2WjM#|F+v4BNrzbTDsFai2rT&B2vaZOA&*v}?G=O|yl`l`AZfobN8>OCv zo5PiRErN%cvMVC)?O=3VvHyMvFLEZC!Qa^0`F>l@x_cktAap4SD6TP>9H^>3{8Ip4 z!hW$O%+)*R8&HS-P5(4)GGCc|Q)VyVhL2LBAts&e(C*<$hs>8L$nF`>2>2r--gjR- zRB?Ogf4-HFOqu0#FHQR2Ev4`b@!9;=3^(^d|2_l2nLqHRc*Vc>Lhy1#2;$_fxz4eI zC8Ykm3mPB0u2k4HbzkkFXt>+JslhAA9`O&vVCOt1A$WK2HRnmsP zX>gn6L=@$^V?7ngXUG)hIImDHixvpJ5L#jye1>up7KcNL2(=Nd<@s?o(+|HYRb&es zE;c`UNdwEwd~Cin#G;(5aY{p_-(BTPDu?M5^Cb- zW5L`3XlAFnw}h_4{mS3mAloql?~=`cZ@EuEHhLG(tXBWQUsUB5CT4J49(?3QWS`P0 z?~GK~f@vzOhN|hchakHbDt}xV#5uo;PK0f7V?PF2x0u*>J!%hZp5YERo$M}?h0P)t zGG5|a{6nDP`;Hqrpi;w`^%!!I^rff3iKANKOTfm<$5mItFMvz>X9S}o9-nAEUYq?b zo(Z0cKi+Yd$#!iPD2xCYgux|V;)gkJH-1uYk>On)=j~oR{We;CFk`Z9=Q0huzaM`C zJ8=wdEz6H}yx6GVg>jA5u_#u{G;507cCyLNGH+En+$X8eZ~S+XT(x+hY}bpM+Z`aI z9(=I+T+x%6Na+hBElR5GZ41xi!f1uk4K-4|>2u8baMM8gt z0RLWs@IBE2ng{&@%sn(%NT8mRO6Wtr(83{K z1>*WMD126R#}ZWgB1g4U0jJXSLNhxP6ce<8xJDoA{|3aB^rUf(zdCs&rm8Cd)x>vT zXPFMS1qn}vu1@u^iFU?((67j^Bw9jWmwhNxQPD@Y(56u;=@5;M(t=U&Z!{T%YOXx% zu59zq5PNc#T%N_AZEj@?An3{i6@;6*<)h0t!t`3?T0&$F^qc7-;XDTP;43HSr2DqO zjVsKMCa}B+tyYs8pL`y&P-C$a8zKeHziIoz0CCf{MAA?cams34k0ssL+iU$}Fdr(N zF!)iLwPO~1#)oAY{!FB~tXNi6au8iQb!qT(7Ku_BQC6IBy=`Yxe%oDwk@D{Z z%A@BRw&h%#8n&n~y$IT11ja{?pB?hWX;#38{-+~EZizkALyfnvSgm5d`W?xgn=uj7 zXo@&JUFLgJnv5ju5I-|C)Ta?R3!xni2spLMMzQ^5)k0HZGWkcgTf&=g)1&FL=N zd@AUy%~OM8C$S>L7iZUg;PuegDuQc0qa$Y1ZW)uTp77<1XfNbh{Ul-}E3Wuzlyuw#7w8rFjG1OU+&%4IthD4#LQ%S7gG7^s*G{t9kHO^lH#HNG;BF zXrl4-Fv*(W!k37Z;%I?wPs{PqokT&W4my@~nw~^&{UA}Hl~*%Y7l!bqp?FIN@%_%t zyGlvKrcf4Zj=dGSnf2M40GDu?jz1R;qc)e~$VD>Xz6NJK|MgR@OX9ienCV4`QCfB4 z)CTANQ<{_JP3ldIXu=kk>ifx_HMQ)LFLh5<`k~M0td*azJvqcaA@eCwNUU^pVab@- zVQKI|#;4hlImoA3uttJ1HQ4;2SAzcC z!FJW6=w<;Z-{A^_i(A51Ca+9Z8+FI4vPC7qbmBZod1UK#_Pz^n7y1F7qwbV1_ObzR z!4$j0yqWL#Nt)hrx@9<+$!}F}#dW2pDQx|buj3ESkjMd99)UXN(|Hf@&aELl3R%9W z8Q2aBQ(RN+XR`pG_^jDP-TUC)g zYrcl}!JAxK>XkwN^s1pIJ;0G%p^(De<14@h1@$Zw&HVs7kJBav3aM`bv^H> z6LEahdVyqU70EQF z17p!mb5ma=xYY{jF&8iAGG|-?)Nn@?`oAj60qO2x`&^0~e!R|FTp>w`Xb)q;%@Acz6x=oY>YRiacEvCvLJF17SIHWk9 zvS&GM8}s;{)S=dEGdgI2373A~n`>&2f@rwD2IFbYhCb0_4v`2KeisJF852B_d5+QjQZo}Z5a@*%i^cs98 zEpw&+&!|7!@@XNVm(S4EO4PCjLNJrL&pSNw?d6FJle1~i$7ObNw4w7m`zif>siYsn z(uEH2xu6?62;)x|w5fnu_d7HMzbr$ZV};sk)Jfyw96LWan5HwY*hk&ddWg5bYaoXi z0G~d*WhWPk-})Y7l+`_G<9j+$`Ns{MXl1j+v6COssA^W5M z@iyFUMt6~4Uq25imLL)swWc$ffd<23V~S7OMOS!qZB>?P?947?nRdqH4WwAB)e%kr z|9hQA0~z7~U9hxiZRh9wepdfz4~%pJi($7#bCUi&Pn+xeXY=KHu=SNSaZgWWA@@~h zYr)30%6JQqpYrzB+Mj+u1+3e@;BYhoM?s$UZ(Dn)a#G+xJ!WzX+>D((G`gyFSXy++ z>}toHYHkaPkp~X_RKRmM%BQS2OdUry^6cz4G*^_E9Y>ir+1Gb;;JV{%7S^_e@ zO^)^X!4pqq&Q4~W85?kVzlL92JeUGS20N3h*Eb0)OtKu=n~Ls%`-4j1logqSXd2e8rR ze|^09N#;68WcBHe=kQC3&6q(6rQv}~0$Wep3UfY^KvH1z&{JWG22X_l{dF{^&@ zUXw}PTr|i%s*0eSarl{Vr%@k7C_Qi0BmGj!@~j}^`nj41lNV1#b{!M*g9l~$;ijFt z_J|oDgoJHzgUFacO-fK$)wUy_LZ!(IjljPD+~g3QQn~-+;0M|Crqg?`^!#$=EZjjK`k* zHLuA-6DrbVfTo-$Et>wz5~AzSJMlQn9qh-Lqo0gU0(CxqF(K_r6A4t&`O98zZw31u% zyP8z*;v3ZpJs%J=<7ddH@iccVf(r=;BU(e!N;klk!F+}1o;RNS)eJB$Yn|w_y;Sll z95|LqwW~e7)Ep02QD2Vt%HD5}frL2<)Y??ASwAOy4NAqGXERoByPXt)CEoFs7j;;v z_ja0ck1%vYhX|qEWl1L$0~(FSi~SgJd<9*SRooG&nm{j-3HksvOOzrEpp=-Q%MEN) z6BY@vSd=y_8Ywfc%~EqsWy#HFfx9=PN?NH{Z(m zatN;KM!R9w635TO?8(_FxM)GX(K5|0=yf%bPY4{xBseApXk|!I*7`K2|slC0u zXPqudFL<%8z%oBxIWHI|4i`-%Osc8g3GMIUu_>W@0JrFrZvu8zH=_=*RsP&GmoL~T ziAW@hYe0}?#_f6R2G@YqMQO0F>Q2k*m~_b8)K_7K#-;~8bl z`S?!ja}oy6@)+r`1sQz2gn{Fx!GCbeZ`G3h6V36oMa`js{;L$Lim9;jxDKBfNmt%M z-P5vo7&XJ;AR^*%;XcC#$zx6_lgV%H#YDEdl%HH9f-h^MXGoS;AJ;J1ZepA6KRv?V zI;oNE7eF!;r3BTG@&`hSeBVErbO2vsN7$kMVftJX^&80boMS@O27#a+#Xd7>17|Z- z?TrL!H;1teAz!t92)13#ZfNA&*(A;`B317{?cAAT!yiV=&;y+E$YFOeHub%Wp3X?C!pQ^A@pj{hWvr%XQk!%d1(2{^t(>~za5tAncNYV zY^tuws1KH!fIi#WB3tB{AkoNTsOPmN|L&frT|r~dD9$$2&aUjJlY6{$Hy^N{h_MdW z4ZKH3S)ttc_a{XXLL&JF53xbekG>KK|Bmgv&o&?-57{u&(|5KdYt|~(A?iHj0@U?$ zhGV_ChHD?tA7z|k7m{bnR150@G`hy1S_!<(nfJ{O@C^iHEUVz~;BYw!b|q^*SciOV z_$x_(1|UKljg!{>T#~7I05!Q{v%Sjsvj>JGrC7Q^;DaGanqTlyvu$$pKw1WKhfl|i z;lU9)*#oqj7!L7_T%kFAUe7=Daufg%_@PcV`RnWPhCGDW+hVrbh?`4JlZHmC)R|EHF5LoVfSYTx~#zB^)u9+R`9K06TRtcTJ7r_2U%VThzy)nb7P zMKNGsz$|_7>y2(GiAHeS_FD)u#t+svUkQ+0CP|^wb z-Kj~QKKZ$_S~~c#fSW^OR5z8hLj!6Zb!5%t!#a2&eYhyV&t24%`mU4nxqr23-IF?O*YC(w{i{IVBQkXc|op6Z+TDx@gk{`BNYF!Mq| zP(ZQ-)or;$u`^^{3saMKvhugC^bOgCPnefJ-Y65e;u237Wqpm4rFUQ1{~a1~S;-x< zDVKbtlsK%p^E`5WabNx5B^ToiU2;$PahHW~qbg>rUDIaewbC8a&CTiY@PY>Wa_lYACsDn29ew*e2wlA^%zFt?hHkZ1dm%(W_*N0S(a8z>TviLl3TQ1sn z;E|8sRhvF))}Jj&nH-s;hBxMLq-RnC;p>)QCqg8}kOF2T6AqnEt$Wg@-x2*T=8D1V zb@ZgLgcb=)K;wGldOyJj+ale>E=VycSR(o9DjhkZ-Ab|lC{sag{4W(#A4Ea$Tm_>D z{F(8#4E5eU*i>5E-YA!|qeqn5+Hv|8EZaAS+tmQ2a;eYtu2Ovvia^30=K70z=RX4m z8FQ_RN>p+kWJN6RAxv6BpTqPW5mQkK&oGMhr&03}*8;y;&e?1h#w##;oazN;g_VC} zQgt^g=(Lho6M-0%cqyZjwH_OC=oT@-$iaCKhQjK}%Eirvc-U&lF#WLC*oQZM2|iUU zV8KUyw%C*lo_jwy5tGyYisqEL-idB|3fhd2Y}lK%*$pgpd)2#;QCFXi519J^3nGr> z6ZRd{7I%iPjeU04;$H5<;uM&pTvo|30%LvP z?32A7OfXRd-OIdth*2%tdWgQecpQ0gxN${yaatbMO%_Y(1?F0hAW6IIGu|0aa3TMv z<{9GMkZ@@J`c7h469_@%S4{_PyC8~V2U=cK4MN-)w{MvpnU@p%>m_k_N}j`45Tm0% z4ek!|TV#-3wSW1+t0@!0mteNaoy}D=T_v!i?f$p0=7UL{7Fe?IPw2Ae0K$Dpj9T5_ zybvkE2SXp#10cF^HCj)4=Um?Hl7t>bQTeDp#r_Ra|CMumzs5aTQ(|@*U*WTY!J!lS z3Eq~jvRGnoqEwRvZCD$VIM0uAum5;n;c$-Yw{Opb39x?3YgE|~8!D*zL+Ce&iCeNheV3C2G^*WY`1j^eed%swfU zjgi!S3!OPN%$ylsJv1D4YI9L-@LCnW2x2pPn^4__{l;LC#J@Exnj5&RqK6!W)D7x= zrz|U6&#D03mGDVBl=ej+>B5659$v?mDpvpM{hWQ7h~0IMam5ID5@TausYP?SqWp!pH{%SVUoQmy-Q-unRXQu#YOz8}f*vTGybS2v?dcxg3U@d2;R zOX%;FOvSyhdKu3dVVg036^%fQ)#kH&gNnIXaztBw4=_X_@h~0D4)L(bXaVHiBntE$`q&bUTb7bL=C4jEqPsMT2AtGD&Ah{O-6%@}IuC@MLm0K4eX&L)s zAafR7Oz=H*t}?`0AX?1H{41E0YQsU)kAXVF?J#CG{ghyml}RW za1?eNhQ1f*ZJeH2^(S*>B=qj2i~HC)H$=Hr5$u*dU% z*<=3M+bDAW$aPCkALoTVX3KrfTKJFqs>XGb_UXKZICdu4XW(-Z4}H&Ff0ppI`ks_a z|3kxQ0Zx*$-P$`$FOJ4zwN>6hN_AP+vBvVXNA`Iu`SDJ}&J;nR7Uh zE!>Y{(kVQw_NNfsG^stn1bA~Cg?Pl#3G#8gOH1YG?libG)f1j!0J$(h5ls)3L70{x zs;sY-7i!Bb_B6PU#bz#-7RR?;=UWu6)xV!pb)3!tLOm`V z^_FEvyjgt%2l4l!ZhwihscU&(7a2k08|=waIrp1j<14Vj*4B! zsWMqV@3*^7Q{LO^_itC*YDRA|Ko9Ici=@RktmZzygF93E*O*Z1p54v>W zCH`XH{Wl^4L~$diS@D6g>58&Um$yr1ide||Wf9LD#;AgPRJ@DxU)V(XhTU-PL&C(# zAV1!K^rlm2B6@E}N>u$(2xn7mLVz_Fpi$->%z5-KxgY?Dz8(-{`47nR;+F&dL@smh zS7z45l;p6ggdOz${Ir7id+_evSh*4{-fVV=t3*-Sb^oe5NXd04Cx9g#jB4cYt_mfI$U&qW+% zec_EGxuvR~2sc*55%B~;aK5m6`oCjwm2>?|Jkgj^pCCQKkbg z*wTzX!`;;&cN=EBYtJ$SO|u%`Z0bZWV-X@K5>o_ z#PG`g59TYP4Yu#f=89X9%Fs)z$Ysyo_c=fS!ejg{P;& zunC6h_$2D3^{ff!E52h1=~vF9u@-+VPHta~vOBZaw>8?$$5@*(0-Eo+e~nY#9po9O@${(LHAhB%XMwAz zexRZL1YF*tNeWv}XG(y*r(4#HBDzZ{{Ps2{r+movk^HW}5EF1d2eT>bwJ zgShk;S@!jDHv!c`fXj0P=HpzGMYgCbCH5ZI0^BCHuJ8WZ= z_^)o~@LRjkxY6@6qww$d|qu-_%g4#I4C3C?&Y6YkV#3O&5Q|^bO0frMk-XFpy6c$!m>;@rW4BOgWh!fRvJs63e#-^R)G+>%0WUB6JZL+uW$#b|K=^ zuVejKBu4?Z_;ojWawSp5Jts!J=D#4T)5@uRdwowk!p*=DiZs;)7Kb@AQ3Bw?LPe+Jt9gB#@?@_9)?d`f%U|% zt{{41&@a`j1Cd`@((`$`CHpd_*MFmi&d$qbD&<*sZn*>zZ4C@4do1SxE0kU;&i+2w zLxf-HK7!sQ5@pusHp79-$qsT5ca4rAX4>PG+E49xfNYi1_U7<~o ztv66=TZ!>w5j}Y!ign)wR-h+Uh85#r$y=aHR`(7`Ys3mxYu_#5-43S2Q8w$51UlI5+|ulSR370Xm9iLSq8uoHfXjz&7&ChZpZkJ zu^Y}{k4@8gf@7p%noy6-9_Zw zhL6pR`rM=WiRV;(q5pQ4_dgiYe!T#Se0@fJ#PHYIZ4-Q)e;?Z-+=LjOFht3CZEF)U zWIvzUbj&8%M5l3JP4&j!v-?h49h8;9o{Py%mXZ-%=%wM0jwv*;g;~QDTjl>^!zA*|th<$QlT72fd_#rGF?9EVNAO7u zlxfqj;kgY;`mG3k#i?C@atJk%*ig$_j))_sH%-@gvG$G-4~&X>h^O>x zZ-UxqK_h_e4?ZC}TUcLLgry6_(NnCR4-#Q4PD{4k$%p3o9b?@wp1U&J|CnZKTBS$4 z*Er5d#<(5?Hvp4}UKw2~pVI4D=Br~>moWeO4pSTE$;n}QWw_0bg}sYKb*d-uuux)I z%^cv4Iq4|IuuOEAWw|?SuF*mwArH{Gp11x}byIW*Q~4>(v&ug9@*1}B>X@ns$4uKP zr2(Bvg$0Z2?+UTKK97y~gpJFTpy?!Bp}4azyC%;bAg!_LV~-n$ReIkPSUZr9xdr9*@9%OAH>`XK~Fa zj_eY>D!Z^Q-He?AFGxEr3EcbnkGuH20&ls|_pX!0Cpj!%V$~o!eH=ww;2lwVF&FN; z!d;!_?#8i3o6}vBAwfG>Z<&goyh;5caxZjc#H@Asqrq5WO7dBs{vQ5r09dP+5$AMF z7};Fbgu72POH=DNpHStNBZlONUC(v_QrN36WgyHC(VRJuN>Zc0Owq%yjL;-!{ZHti zj}1>lnlkW>Bgo zr{u5MfNJOrFKy|^lWaIbgo%?ySnJCwds#*W+U-xt}EPL-8x%grT{#f$bPOUO- zA=8#F_yrPE*u5V7sI}oc_J-lq1dEh!`6Kz}z1MZ^_J0?6RToAv{*HU_1l%6n_~pWz z1Bur^F1)V3bq+`=287(+)njiXr7<|h%A=WA1Co!v-=9f!m$lVbdBD6SnDrlBB>HfL z9`mL&am4BFOe3G6Mp%dp5Y+vw1M)mgBSa>DVf<+vGD-Z5xj0Mqydnlbr2iI5C4uaF z7;6%s0KfoOCs^i~dEbw*uZzJ9*2p^dK>ewdCyrlv&XEyIk+r zdSV3HKFL;_7-={an8fc3CeV6$=OamFsgs9wOcjgAWF{J8R)8iMuNqy5=$1k9`-hVUYJ$r zZPCfsCyp;H&OM%L-2k4>1ZTdUn?=8o4XKxWdtg68W}I^YVK<5-ooYpJf&wRv`6)iB-j6SjL+b&_i+l zLMfE6v}@YjWVhX<1aalr256wKljKgrttfwT=L3KzALEu6GHho*(wzsBhAWV_f;#J= zj_1@QeL#AQM$%=nSUA!B4mq&EPT)kxxh=(We-ZhyE``6qbTTT&I0brdw(Xi7rWml$ zm24utkSDM5=0ZjP>vku@hI6qW@Oyd%Hb-oQyG9l)>pudKcUFb-NSh0MnG}ECQMlg&O`WNCKcxUG05uCq3 zQ9uKbY<`JY0XYJ2TacbX_}2h1ZISH5z^rq6J%YVBmmB!Y24d(~N7dhL$J*MhhM!(> zdQT@JI5L!S5uZWecSFj>mGT$Ku*GGjute{v^i zSL=(3d;Y@2!(ZI{6fMH);^PO;Vp6+zzIj!V_b?9;Y_LpTlz0p|e3(rRxW1%amiO<^ zz}z*uHksJUpJ}q$u(+U6E)Y^AKl;5T?~Ekb%}H1A<+@;h$cTp|wMNA64Bcv`f=#Ii zHyv5fV{kV7s=xOWKn*_D*@2!X)%U{RhsAL&kgXFD#&QG8o!)g*^_mq-8-0$b2&8rnYJ?YE#cHdTm*l92zP|pls`+2| zzhcp4qh28k9m~m-J$J`D%k!;*n`sHPa1*Ko2d)YU}y_Mu0C73G&txd(88a}25JsWxayEmW@^ z{K%21!k_}Mf8XBz{=Q<7_mGKsTiE!qDAc$CnGGecOQTF=e4SLsH?1AY1gP()z|sMF zvsoA5g+gm*YMz8`76!_C8Z{fLy-v|*grD5*0?D?8iz%EbgwUAR2L|c-LYdI5u=$n(E^|k?H}r>6eIeiGmCcSA&M9+*K%Zy>Ov1-KT82eN z^7>ynr&K8_(({y6I*aCqn4>b-(Iuu%vLbqW?|1L8u~ZpIl#ZtAjbcmm^?9K*=%L?F&>Z*+bt8mo159PHxzc#_%l2sC zhBQ4swDVZ&04tLhIWwkcp+l2RIzH@B?+k4adl@hJAMA^$WtT5G({~{K9tM|IsXp$b zvg9)@EwC5$wl+&<2ARKT`z%GF`BbGQwnfVJ2lv8Dh5p3IAy6m$xLg5jB-U*66^8Nl zMC#c79__G9a;zVv(T7<6ecy0T-puUh%P$Yqs4$!p;!u7p7+PCfFm<8U4H#0Am7&h4*cI6_GlGv% z^x<(5j>d&18IncTND*eI=Wn#aCJkM@4on+vqssDYCKzlp%4jlfbq zyj2?=UzUb=-7pBYU)G-J5WIS@l~-#IpPP;eXSkg|N&YPxN8vK9;)EPZ&Upkrw*zH1 zF3YdOzoxRoKd-?AxGq@VKu)l2V^lp6;J=_W$ zl6v$;f;gSIRcZ~beg_l`iVMt`fTby*@dFIspN60F<9PCi)#Pm1F}+Gdw?sSRWk3}o z)r&f7t3;jqw(OaI1Fe-R%LNJNiMf0mae%T;<5b}+afQ=^1zN5xthwX&mmB+PmZw%k zj=yk4dqmz}@Jv{nNBfJ-5g~QoQqhwdgh(Z4hUg-LuUYdFJ(XL+Ds2%MF?$0vF14Fi ze)EF%eYAeDI#8l1J_msbh}*L*=~~DWT7Gr=*qtM<`=%8l6}&2Zu#Q{`)eo@ zm5bK9)+|@eckLOTlI2?|f@cE?yNLAA|6WRec7{M^cndLMXObNLpsf&3=xS~%j}90q zFvi*c0SBBmV$<|4((Tb~*=YOMg0*qJGHowA?Rus3#JG*7<)jl|+(~`iYfx_>cIQd@ zj%w7HthZdd^KBN*UAX}P7v+mtd9MpxAK+$*5fEj@-#SRB3dW;(@}%_87D)r6Cv}bJ zxIt+P42{glsmz|rW8I;}RwVxhX?Q)AoJp4aQmv*u$AOlXeV?##Ak;tq2EG)mR`jIm z;V-Ep)Is_ySEtOKsRC9L_hZwXkrC)?-r|G;iB~z(_yJQwjmsNeL4ifNk|A5TG7BUA z65Ag3K&o*5wF=<6Tqhd*TF@K-LkY|Q%UdHku$_b-S4 zQ2S12>(UUvEC) zWP>|uk2b$pr855<6(iz=nkp)YY2!kAfP4qaxSnzs;QXDd=(z*L%1Q9OY_GLknB2|f*4{f_9ZG-vhI3Elhj2fzjjEwC z_$_cC75lM|TNBMaY&(O6p?p@}1?eev?In zz(Zb?wLTyZ-MP;<`h$emME|s*TvjcPm4~nc1PeaxhF8P~N>S zNl%B=24%m~QV-9^8wiYUpm#60+sE>|m~}?>7`wEb2fUxyC!b1afth-l-r#r6>QDKJ zJ3(jq{{koM>-I0tUA;ptntckv%?D-goSFz~mK^i?*WU?jo`oir2rVWyI9#gDvb7#) zt5e@s?~%x!E;go$82;yTo6lcMW*PrX^-J$li5==myC!1q+0x9e63#*OF5i4;;}7g) z#%n<)HD{D2-E07p84u9{*%(kf@P|`ezg!}hr7tO6@A=?T>Azv_jaBDM{*5X+P;gD{ zBNN%)hz!~iMy-yzn6{3DG2!kx*6!1j>$$Q( zz`O|*{FzfwV0t}wSdq;%9ep{1{g4MpvI?kNL1ZgQ=mk`I7p|`@<@fpgQBmjHnH4Nt zy^t5H+ah)p)%HSP~sAou_{Kk!Ayp=gQ`&!LA znJ-le)Jj2J`nUm*xj$F4^;9f5=?-$Igb>)g{xQtCqIytFJ?N{@Dpvlrio2b%vqz@kWtv}X94qn9vJU$|0AwfZ;Ub9)XFrqgbGAH&n)<+W)rZwz#5XX zI`$o0W>maBMo%}M6c)J^e(<>fyDu!+Fz$>P^ViDLLjKC)6{!ba^$g)xbz{5GBC0%f z%Wx_R@)he7Zbhz^xTxx;)og(%|JWiSdOJFBOJBFU&Drz&!bO+vuF$h9qM}}Z#_+=8 zFKDX!de2T5rLw@~RF4($m2kJaju$8Jwpm%}$|Q;fXJh-{iCJ=9{d^NaWRrYNND zmfB3B^uOjOjWdoPS(97J=ad9Au>mS1Fdf8fF1%A0MD)v5G0itpY*42@T^YJEF+Ekj7k02&RQ6AMo zXBy0!3c)hQ7v_a}8mL@6eAbc~&*rXZzf83nR@yTf3=)Sp#~3fUm$a=Q`MH;Ld_Sa zZv+f9Sx;~^F%&-g5aDwQ@qPbQGGkLnUxj;D=->9Wv$w;t2rE`+e5+vO+~Ca|-=+eK z8&X#)Y`n9>oOLgU%gF)$QS>nQ6?>1$M8dAoRd8XFR+RgyOw;Jpx8;u#ip0tHM#pJ{ z;#MAv01G{#40YNs$AtzjAZmjxl^_GtgrPqKn)|l2%3|KP?>|0(7|D_g%XQ4DcDV7l z^$Jc3-u6i|HfM#WG57f5q8s(?4B}_}8+c4&=lg!~_-L59 z`6oy?QS0St0YMnpT-Xb7_C$Xlaf&B?U-5?}=jK^h=j9l#^k=VkSz0w|lR%8qwj)O& zwiKrjnkv7HZ)ZgU{LvLb?9Uy;n@|E_=Ep(XhmyeysY;iHs~ZoKz_OkXNVdu^7zsqx zn&XS%KcFmQ;5x+*^Fx7vkOP_u;iqPuFk$0O?YiTb2-(e6ASn{d1z#^-T$Tcc1Kky= z9I`7BZ%u+X_2oKKX|4r)#t3)l)x25V4s}f8wvuuYs7&08jEb{O&W@;4AxR#Bu=bK| zz3L@Zr?!CRqF68V+m|m&vTkF2o2GoRgn?r0+a%J&cV5XKgXpBk>2UnTTH66qQGiNM zu(!(IS5gHw!K7;{wOM2Nwe9QEHHnx?J{7TE=#BW>sJE{}OmAw6 z{h7tXfK=Tw)LH$`7uPx2jXvo(zYk4ToLtN=JN)_>^_BQQna(`+eI;uq2VeT<5l@F)Sw}B53lR^WCKuf{}Hzrwom2rWF*pmgz+(o>tng_gfGF zyD0=bkbdGb-DNZk4b4)`k$lk6qxW?Mau4HVd6w>H}icnqfiC#6>Q2zV+C8T zzW`d9Ym71UTL4PA2`010tLv=2zU0T zN6_w%1r^Uf+W{`++vjq?mNPI$)fK}6f;1Ff6*#}xV3^C3So0vDO)HN+(*YZg z6zTAj(a6K;j=afXdYE-+Ov8*jGu=7Ai5a+ct9IGVlSqiDhw1z0*&0nI+ij_7Icy2X z{8OGdm~F*<(rP8H-(D)brJ5W(&UZGOcex)NS2p_*8+AQj#46Z^uJ%&-Uj6BwB;cEY z|9AK9QsW4t;Rn7uWKQHEa{NLdALsytrk|_c?a);vkahQ?j5XTe>9!l~Zw?&#|0M%fIs}0}9eW#2O;0uk>>^$5(BDRmXO*%8VS#mpas$!LFSRQwOT#tKl z)YGPdzyOx|Hh^yAlfYKEgF^Ne0SsQrPRx5q?9MtTK8&*U&svIx__^uSnO6DeZW*O7 zcPr&Fj@9t`>cItxrB2g6sLW|6V}(rvO1};LmKIyRVX3bp*(hsPoA8rjUgVlfT0a@7 zZAjU?sZQ^bmwg2+co>Y^HYz2aZSj4^OC+9gqoQVhfEG&#pL=0dUOXFaP=&Mrbuh0+ zu%LczvO=HTwo6^=S1a8J84EoyA#fW0N_#PIukcO7aRwxxK)bTQc0#3{azF>vl) zRGv$wOu-%H+*LO8(>Ti2jI&I7Fz2&I6KZ!P}!|ysKg> zP?^@Y&xp%VZ8OZOPXVgesqO;0;paTQ_Gl29(f?A(tzUKjSNY4u#)1JYZkaafa1hjgF2z&Z{l@<={qbLqE3{HO{0*I-V)#jxd>hvZ+=fhT>mo2& z4p}5x!AdE8bN-+w{X6gh z=L@nQXJ0?+k$s@n`uH3tjj<`>jlT?&rk>qNrs}r$wweDV#3}wyIYO$Ux6O>89b7F+Mm8VUF2_I?Xf~`!K%cOgXjgx$u(UC6`pB|LKM!d9Mzd= zI{jrX1CjI|#2G1?U0bfFyzq)c{I7lNN3xuHNOF$sBSz+J{!Vtf}3v! zv7Y9V{>zs<9xBI|E-W)y8FEo*+mlu9;*0qIMqrjH+fOefW&0z|juCNxj|z>gNK*%E zwZBgcoSM6bHkSy}>NDU;MTLm270s{dEmj`DMTyMSp;qLpGEQ@uu_zi15ALQ1U*tdT z^WibA^1LIzWutv@EgR9My{V3;DL5N;RB9TQD@z!+)pq75jMl=K&FT(v(Zy~zK~Ju& zcmqG&*}7>=f84G_J?N7+!=bmp#_qTFN0*6tTtI9db-+)hq_UtPANHdf=jaz~WU%fa zQ4sNGQ9WR)fa)`^H5V_u*qnoWuK2ed8jXq*c#AI6P!`oY7JnbnUj;8kmS{J6=HsAK zfeVca7+!K2hxs(C(^u`0yY*$wWnsWp?u8t^NA___R)qH$a@0>gKrUH4tH z%p=qGpW%QWY1};dZzKgMZt@(AdMy7g3m}+XojDjjlw0ap^wpteG;sIm_SvL+-e$>) zfxLSiJ9L~O!J~MzS!gS_e4CM8)O=4|pxa>OFK5-ScbxQAl}>1)-?J*f*Viq zyjW_olEUKN{cBqHPzgcKN0S18GxUbp%((o_{g?6$=_6ZyIY`!U@57oYN(9wRjS>M3 zbO~hL=J2W&+kfib7xC%YkoGXBIuubV{a0IV&$U&f?By?C8_Jfi`u3sR&-dWPbw9UO zrN6@1m6C~_BC^5EE3C=m5Tv>tG@J@kISbop{pr!Dq!NkgncJfC^UW6=TJu=%+r;#S z8f>EWG77Uh4;_#S$mz`@?^VpY+kzPmx7Iayp}wrHDpMeY3#?ADwxQ;Jf`c3ub$faL z-pZczjSB_1?rJsa_qK8lD8t2LzqRD3;R^|koPQ8r93v1~L(Y;;#|f*osf8!J)9V&H zeG82)kN3xp#iyduqfn;NLjl=m{?a(r!%n^6xod8ZAWPJG4{}G1#|lX4#`J{f>H27E+4|Nx;7@14!&R00drQd+J?T#v{Sj~S6Xpc1N0gblxwLayjd$7Wz>0+_l z4H1nP%+Q5z$JGK-zQXr3dffk_WIhkjpHv5S7@Gr;jfM?hgAEKafQ6RfO2`I%_iq`C z>iMgB&}putvaC}1N^G(^=Y)<2?TO4*{Rr6#jOPd_3v6H|gh5L9k*Sm*KA=rpKW}I2 z6n}oC4y+sc#GUJGJa|5YY_!Za4=r!K9{jtq;9qoVAibe8NF5s&RM5I{Ne}l#zB*KG z(vsEpA7G?O_&-GVBmDS&OeX+)x94Xz%gL*{urD!PjXNN12&6D(g1wniQZ(wsa%26%h>hta|1xH%Bo2F#|YT{rv{I|m)o#p z&@ObEtUD7}AI|2-=PhU{0EVlNHZ`K+Reqm@()^TDfF*hVH!5FZ%n`!6kBsoDFmopk zs&sgBAe-tOc`5esmFwoS617_tyAjgGw~hqEiHe{c1L6rWc!c1Vv8UPYSUb2*GR}IE z5NwSVY|?qca}O8NY1KqED-CTFE~Ve2&+&BI1lSL(t;I|tC4l)UD`Aq@If+rbo`;>N zDY5qT2+6m{eY|iX0bIpWg!W1TGVZuo_W85e+M)HtePr&p+1QdPj75|aA+=Tg&_jdd zJ+fFlv8Z=4yJ54wc(YA-0QCkhm!JI)c7#bsSKcnRXuj9_;J7%R5Q&*F_vX&7)!+MU zy#kmP&Ngyu%26BoqAb_;2bi<6_b8xUs!n`wHs-xn+$VUmIdh*wvL>uqZv|^rIaXO& zw3GtAex&kkcEy_HGRCs@c-Y`b2|!^^Dbz8&OloX}H z(%_yKmtikNhw>>Espk`(t}N*ko^})ZlcWy_O^e^F$@YC8w^O6FneST({24#0Jex{6 zHNVi-%a#3Umz>{qAN1=9UqOFrm6uTd6P|%k>v+@7<|uI;EhqGZT_8Ck^{3>o_|2tA0xDGCXEi|2WKJ;+Jv=LnZy0_gI-{wD(@&Xau?ZU@`W%5Q(DekiWBX^DCE%VQP`eiu~5 zj+mmu`4y17!-MtBEb}_d&OnV;#RkoTR3Cda?OSo$gVZn8ru{e>Dic0Oq00oX>CFW# za~;IB`IMY2A4OyJVMa{ywWMg^uamgWwT0i(XdEHnc!1C1WFC?B^urRHZIgTIR{OeS zfyhCPrF-QPy*8;s=R?p5$a^3kRQqc)T$nF>^02@w{)kg(3zPlbos%w_rIE#bPYhBl z(2zzc_e}0wmYiMFJ}kKq?By6nq8D{Z#Eg{9*i`W~xV%2=(XjKHM-e$G(%m#uTSK6U zz(Kv}q0%RJ+Y6MY!zJ@kuaDrrpwdp%d94duwh%msIR#}056ZQ#xJ%-Y4A&G=0%TA5 zjV3C4&N_GZ#uAoVrj zUHF4{4kuQw|BO44#o0ZQ2oqsk4qN3AIC$SmPsJh1Bfb5q>;|onTXm)vCjT*hBHwf< zU}=M^u{vGnW%=$=F^?odx-RMYii5Hjd$uMfR8GlJrd0%rV08%m6uxAZH!~=25$CC0 ziqLs3?tr3ZV~B|VcR_PB*LDQ-!GE|qsl}9W_i-N8icH_${WN{=FnlK`_vP=ho9cE} z-^$no`--GzKJfRxM5Y#YSoiBQZxy3&zkB#?P}!RbS%EJWosXcr#gU3gb7T;?!R!VF zTU1-Mmx7Cr%5nt9{sGLC$NUMDKYRM;#8I-?-~BRiYwD~mMzkFF0`{b}xkyhIb|Nq) zRB~^ITi@O7-I}2q;l_qym7&qmMcRMQ=G}7D-Kk=)!P4;^s}I1H;xvuJm$mUOY2S|J z?$*SLTFe3A#p_7>Ptibr``d;OtujLhoF5x4!M+0f3@VgsFQ8h@plz6!XP;s@f8Z(* zE`x5LIQhhYYG@h;9QG0J`lIf@xU%3}nvVtwPN=VwLFuxL8xzLw5_O9|*k4XQzuu#a zt?+v?<65v5DC=N#e;f9YRUNu5Uks$G-98%`U=xjtW9bPLX4z0UWo81#*9A$Pd7DMt z+|f}6@tNWgm&|b*d|6gFjgzicL<{o^YM69;05z_II-&!sZ2_$y#un(#O->egP}7P6 zqCnW?=hrH#y3qsuGYh5CAQh7_g{3tjwbhr zBczVHBUk|6!U(wE@s)u5w0Cuc4O#mz!;{($^6kV}g5k)2lcZ6(>@ZdzvKsn67)O_( zftm>exkgQXs%@(-apcw&uM^mCLW>sPsAA1;8y(kevwQ%Z0WhmVC#{Rw+YvW6oTKF1C&F9p%lE^u88W7! zVIX!LkGc(xga34GUs*=6d;yfaTE4$fx4in6H|QFPVPv*TdoU9Rr^)Uitm*-V0=y7+ z4aQLw>w#ERmV?3_*aN!2B6ay0hWWK<0;b*fQl+bUr{y1Vy#Mn`!s_`Sak+^&1=G+M zhqmm5J$tS&UlM0=AXa?QAp2R5U}COU7wf7)7Bu_}!vreJS27IMTmx<74EAZ|uFtiv z>OVBSB*78=e93CXf=NQCNU9hjPGdgUY40^(#`P|W|2lAb!s?jxe7iWOw>$rRk`Coe z;;P@mKfZ->9mbpq1-3IPAqrzl|8t1LX44fd6cfFC|HQxPiZUZeJ;&)InhP0=?h$T+wP0G%;h}Mk^fsoNx;?f?m>PU;RfFyp&j!E&0 zUM;)GQ?`Vi@2x$(xj7YYZd6>GLJ%I`K#nqPaW(@|jCBE-0K+5(6^JGkeCb!OS<8LSvseb~>M!MI!=(Nh%|~l&e*|>%5St~%KR&M z0=iDoKAfUQn34Z7Y_yHFZQ7ywHid#&4pR?jW0d$?b5Am|rF6(MKQT&YH0rjSlem5H zB8wI_RV~olEFQky2;N)P$nM9qjT6j3bk`u|RyW&8nO!9BbTuUg+GljvElDThSwZsC zSW!sQVc$sr&KKJel=0`AC<9&bU*xU!=vBd7@vJi3I%O)z4%*7{7bF&nF;2>{BA^u) zCg^FKB#+}7<7XV0&kW}U{$Ws@n$*qoSiJt{@}C{MGjGsE&CAx5$JXKp`Cj+9&-BvY zMbzh9>C%qk5A?D`bD;ky633tstzX;N^Vn?Mrw_*DPbE`h&#xg^!!3-2uSWok?B{PC&B2Zmt3Z3z#{O31Vj2G#vL^Q| z+3P=gSr0<gUI^ z>A4cm1;6CRepfGXO|E=1nT>YJhjGH|a$txU-qmMI+DpMn zh5Xqt?Xort%#7LXr1`&&75-yYv+IYkp5o_xCjxc2>%@QyvzCS94{PJ(Vv5G=L4F^AP$4El z!u!vBe_Hwal>cnsS$IBdeWuxvchNMx#y%dTlg46w-3R&RWL*!>+evL?9}tEK0RE;YR%@Ce>4iTMzFrmx8l=fnvU-=kkQwRztJ#@2@b0307l7KG{F?C zY|M$o4_svpcWwpz0$haJ z(^6StP|vI9DsQV4x*LhM-+5Q;*36F(+dWGWD>UzXXh{*au-ho{BAsst4%hNsC<=QO z{>GbrA>!(nS}u6nc-(JBW!wz?d#=IXU+S}hlNLT6Mqc#JG|$Ut+L`!Bo{0#G&>uFq zkF!j#Ahfd3;xt}JGSS`^#-1YkTNqULukrK)LuKjy+w*{q@7U_g?hEjZ%D?Vjkn0zi zwFMSmJxfC+mUG`;=6$hBzfK^d7Unm6X_4i;xOhBz48l*ZR7_p@diJ`1d>rCoK+2s_fxM7h)D zO!!~z0$FmyB>R*}ax{yh_=ZS|&>xomurPrkdU+S3OD$xnxN z)Tci6j^6}f%vI8dz)Ip_k|GnK1|Pr1U(&kCA0j51w#lQhh|;dNmg?oI^z3P#ADKrSN?|gO2g)S5K5BK7Cj_+mNYB$HrKm5%+2B1lDDjEw ztdP?wA9PFS4BN1=Xxq#8Z`qwBfp zrcASi6h85>RqQ{1eQ{E4mhQ{*+qtjDCY`@oFPE_kFS+|S3Vtpz@H3ySF=>;oNK#%( z+W_YqfBqLFTJdXDYR`{^D9HAGNq*MmdChfXH5zrd_j6a!eks(J-*vxe>U$HK`X?QU z{Ou?D<801RaQ&eWg|&7%vgY=zSVqA`-QdRsH@~d+N65pSI^N+m$*y;NzR`Hb?^N?* zK8Pd|?51D#UJNUrP)k-u`e$h^CCivLsm5|GHI}zF-%{P4GMyQwNq?hk1>Zl&Z}jY7 z|J0$4erSba1W6e2J6mz&Ig%w9KVzu5DVDZtjdye$Wtw{tu%>hxeSCyQO{fS{ z;%oj2?r*P&5kT5=jObDTDdg<<)D!ROxP2cj8ZXe(y8W;4b#3L-F>OwIdR6bD1fAJ_ zc$1~voaUBWgx6GT)Jh&jatZjwyZAI%OM*!4!4vT|M;il(zm;#&0l9k>(lP0+d+*`W zZO^Hj0Y81ZwWWt6o*vm|{YG^tE4GM}Nj-d&_>IF$(`?31{*X-l$JsObc_DTr(xF-K!{D}#A{wf%FcRxoP$aa0UU*)ceCl_=TGa>qLvwiB7~(#vXf~!r zfiEu8EtL$7c3C;60BW*Q8ZVvcPO*jpj^7iM7s|y~bwnCN<@KWiR0V{0hl|KYQmm-o zk*#X)vBL7~O5e*;0A*h+lDla(J@g(PZd>sCyfKlw17ZJmuGUCp{lAe)6M~tJBLEnF zUs~uvct+a8TM0tBanF+`?wLL+a!D5X`h0w#o$V%ru#AcD&?EP}tvQ_d(0e-d++JB* zW;(k71PTnNqAkJDrb;+Q85s;GDC4}LzXY#^HaeN+G~BrscozDFE~z|G`OD(660fdz ztNl9)=-pPFHeC`={SNICZnQ7N>+^ZXUsm|_kW7Sle~9TwpA8+mtx|+FW&C~4+{TNC z+mm6PQqXdMu5>mHyAJ3&Jur&Kshr8N&*Ju%^UBv>%V+Ib`}|kbtt|+SO|Qbxq^G!5 zxvG1etQ0JTxBjU0<0X<0lFr5T7ijwG#4qsgYFo$9(mT51{wYz@<|B!MAzR>{YkOVF7vP!e0V1#fS-LgAF{svbo`$fBIX}8gQCbj zo7}?O(X6!$wgKUD=?@0d%{^e)>0kbq)YLQoY_h&P+QC*3t@joze*>j7_KhN@6K3^w zCGHD)l7Q;a5ekq9Fg;?mbgGjJsrCe&_;jUOo68+)-NrfJClF5sbYq36pEor4pbo5- zL)YoPO$z}B(_yt8=jP=;9hg}~#dSi5ivjiQCUol7WMS*pZ zD;Ro^lHYBncILF3Opv7CakLNIBg%uzqB;~O3s+N}THKkp+1lf}@kPmNf1_u@JAj`B zubtJe=dPk=3|6zxBFNTg?Xt_P)A6j}kT2V0^u@HLzYWCtDnX%Un08j>oV!^hQ<-@E zAbI%}3H~N=rV)}(s|&NZw+aNwLyjMpr7!1l&twNpTtc~i9*aT-n5y6%zxBjE?jokC z;!T**JwTDZyefCo^ZR%+rHy`YqLn8EWz*2yt*%mbi}(=4lDA^vk-Orv%<`@)7JQtw z%`o-~JncTFxdpnajEe{98Ed}q1lW*2?c@X+TpirHI;Pp-$l&5wBJ=qfp!_)?*?FUn zrf-FodVeG4r8Qf^@lLYFm9rYuVaZtKG@<4nuM+D{p6#-Y#F<>MluH}dZs)(HF@gQs z{1JWY2FzFOJ&_UvYhDMTO8_CQf8fXJq43TkoBXN@_`$>Bl!vS3JQRl3X=hI6&gLl% zva}V(Ku+0s=L$XAqw|tkE447R!k-!t06qqqn(Y)wO>-r6ef?Ok`-e1g&*9> z+8LFYf}ecK`TghxDBLnECuoA`Gp2>D=XJRoDCgrb{b|nWm}PkX7x~5h1xUDExI^w( zSC({N;NiD&Bj6WtUP(KFCkOzE?TtOlY5;SnIMiqtQ7>s74S2lfAk=)j-p!X&d8SO# z8{CEZrz3QB*XMXM_qDa*&^3Hh+rE03<&IFmYV>W4FyXT-!?9^Pne(BF3;l{?!QDuB zAknwm;dmA~8PXP=_%A(I(-W`;x#KTPp5`Trq#^jOwn$|ho4mf>;qMr<^WU7)-X(Kk z+5PLl`ig_gOXcY{OFpp*D?uwyc3_VL4ryAzLzI6U{KxGJ<)Gh)``^&PlwMp)cF`Ay zpU7LiyI|wn4Nwtv<*}>=n~XTC7w0w7RYd*`LRE0ijex8G%&WC)O~lno+J5kK=z#ZM!-nxb*jdplXS%u*jDg67IH%V zBp}>*RoHXLWX`K-aW&U>4S$;i-x&97T#@${rBo6jw_Ikik?<(v?ziai+?O=0lmUxN z6m0WFpVS$S088It3!djo|KhW_9oi5$#J9H_2OoZM2+18~NjnxlvdWadIh&gF957wZ zbp!FSG(QqGF__RVxWxefXQ1#9(EPB@k|}GD?9eWo0q78|W5_!H$hLWRFT;9!d3$3G zv<$gLc6l5F*{hBTZf^Xc>?HG>kY#1ueRcQLEa&GwGkZnlD@bvccPC+b(SL))SU;0+ zS_EdVU|kIL^xW9Exs;s|c~LgUF&~rfO6qA6O?0!XLHBf;lGPXI^A@a~uTr$uBF=Bx zqbEBAW6>)tj&``<7QhwCjJMoT(k3iiw}PX7fP%DSO@3>POe zvI)V-6tjGV>NFX98|ka?BKyAuo6wHjhW^l-D0`92UTby&trkWCXc~x``@iw^~^$?QQzgX9Rup zvzmzpN|({@^A6mG|IPl2)$-c-64rb-o1MhQFJ;x1*vv6`Q&B|R^$od(htYz)C0tdw z4wc<8!xBBEd46rDQ05&%CF*<vH zN@0wJ60!9J9Z$INVD(R*n6`&_7C#?AgBq>;^3CZVjzZuxR?it`U)(JtY?zyK9` zMN!xH-vdqJJZKQLTW!mKSMCo8V1nZG>G!8CUn+}?Jn1A}Z@9_&QaYD^WwPutSfi;9 zL}cvTbU+vV;?f2!1khkPdeQloxB8V&Nhw+XmS3zⅈ&+^&r=Y8qa$kvc~k`)FC<8 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%0AdApJJO^hdcFBXz8D$6^72 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 z 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 z z^(>jdhB>^d#E%I=ovLNeb;(mK5QX_adq4LKh#SF9BY|(gj)aPCbsf1c_h93=?h!uV zt*zjBwZW!`T4t$gt5bp{@XM9JKlmj|<_gJ!gqoh*GCHq>#@ySU`l3rlDPy}~)G+vO zyhQVkGsv=BrK-VUcCcAA<~uLWZclw#<>LcT3;10Iarn(hM~m2cZizz%dd(F|y|}e` zUp@FVv`_u_Iy_Q)aJ{*udQ)sJK39^kI=e8&(^9MotrQ%NX5M@J;e-VW-;;6i@&i^m zXntRsVwU%onvts(Bh995_-gK;2s_NU8)1`uK@dPwEMBm^S>NXy>ko$q2L9DweS2T4 zE(7tI_A_pG%u%J;oQVYz>*prrjHCw16_;5^C4P|tY;`u{9auP7hCq9&%u1>^I9Opy zGPR41GMEV!r-1um5yQ^s?i(ThSjxN*-Txk~UORBIaJub}n)hK&NNkI((`2a=Ytw z-<|#3yh%D=+cEG~x#cj}*19_xI8U-Qy)>}-BIM@BZzMOM7Rg81w)vKfPB<#rI+FV1 z%c`X7>vFJVRw_jhHLQpTa9*<$~Xq;kgcD$_3 z&K3GNzr1|G6Y(ec#mfgSXxhr z=g_ZflErP0uUJPCs}f(hQLJO@3JkkEj$q0Wq4tA`uh4q3H8j3huMndSk%To!^Vz;3t6?oXcY&tKT#-ZQNT zvJ1FHS&sdT=gByz>w+Jg*hOqzg|+JhIC5 zgAAXd_$Z?56K8AFm05ZCoYv@yIkNR0)9R42Lk2cqrt3fE={8jk< zLF`+P^~k?cj|18lJv?bYFCFPZ(bu90WHLCvjwt3T22e~5+cM?_ByeQhZO;fp)l`9V zwNHRW**kQ17?qkK%Nmqht1)v!KV_5NJ{xNZWLqdjxwN}Tem~@y>T*6BQ=?sEWO2gh z4M4Ut-fyukxcq`%9*)?Ge$sm*>9g%3_zwbnj* z-7?>6SV3fC+Fst|!QYjZkOehboR@mZgcte8fm8Aoz&-R&*1u-kvw?=P`{03KEKn-jcVI8eR z?rXo;?Thy5{r-3*b8U>eHyCo|5v-V-nMxlzM~)MBlgeW{xTP!Vq2rDQo}Z@ z$5+xcA0T{=lYy-=htWwso$^AGjrC=PwH*y`5+z1m2tIvw>{? z(D}Dhe~XDq;W6^MuJL7rU0I9suhW98q=K8G#nJvD$ZTJAN`gvGNLrCrhx1+Dm@w8n6lm*`snwPMF{i%f>QL z<30+r=tPfdBJP%~5yX7nEE_ZAXz<~v$a4?@b17U>2Xfb zc6ZzJ%&9zxRrUqZSPX=uI29+<2PF^YE=~ajj=CLEQNM7~iU|)eVtz?Ay-?K?N1A-6 zQ5qmVZJtL$+}`I?1GQHq$c(V2V-`2*LR-tdV*(_JBSC|bzkt@-|3lt3oG{I9dGh9o z0)1v6JAYorHDxOJ6eRHe1&L}olr#xPUT;okre}Vm&$!>VRu!X-@W555yC40hJA;IW6loxrg8bj^8Mr`h{lx(03zB4~PmYg)5i)m><4EQ;*z^9k5+bvV(aFpBN5S zh5E#_&T;!%yWT4hp6Ok!aLRNYT311bb${3DGPLFn5YVOYSfY|L0dHVwLPnfoyhZBvRKZ_=__1!g=O}o zlwO7$zibXR#6ewvhW^xjACpDK!;0*e6Q_r^lp%qBPx{~kV*)_Wkoc#Wh(7%^-zxx0In^yegQ*krYV zmVye#8$ir$G!vY_K07fkmYK;1m7g2qBZ1voa$AA8;y9=`^!y+yt%xW+{mAb`khJAElzFaX6@-sf8_2+_c zSIB^uz`q8ey~JSu<%EKNQ>6UO(Q^)4{=)m(PC3+fbRFqLzFfxQT}l)`QJ8ca`mF5* zm7&N#HnhTtc_vRvh4KFUd!V$eec;^c4Qms`6x0Z8z4^XqRlc>Bt)<8Fa1S0avrwf) z(Atd(8nn0ClsAtwsF5#T0`id`lW zvOJ1$6Q`At#A}JN9;*(8XF$ep8=Tup#t;w@`{TVP4oJKSy{um0>;i(W9UvXd-@oSWz0sq-l96kWG zo!%*q$hY~Ly|;r6{|-r1AfzE<*7eVd2}y=c3t*;;*|E>6;Zt}8#!JqaY zswZ5Ab>HTZ+dJtRtp1aJgjwbdn#dbA``z8^PrJhm)#@3wNK%~oNI5+_rF?Q$W@}ZU z+4myM#!;r-_V=PPq#lHkqd+~U9gZ3%e9+6TrWl6Pz1`?mF*zoz_|fq@jrPXclAavGj5Y$?wbh zG+ea0%@I)L0Wx;hiEoGut9}>!#Zs_3&>a>%XUH4Is6V>N!Dfp*(|+fA97mx zkbZMgrXqtNl$wC8ydp&l2zjo?;5x@QuU_~300|wK4*p&D0rFG6R~$cq?tcInP>N=) z#3~+W*D}A%`8&6!26M3tT5&?Cp*|LWw96{A!TMPL7CO5+zdU}Ig58PjVcjAwpF2pj zIK0Y`ji9u4SYxA;8?x~FZ&=kDkWax@44&PK6EQmnEYv89S(_b7;G|!!>{Az+3AlQw zo-Dn8;9|ArMzoe`rq*z_{*}+sCygm6e2sJVc04dGba!fEb$aI9z>$jSNlmx!9VGSN z=nN(-!G7HZMHsaB^!TJX^h|Y4DW-7bP&q{Xe}mK#U`I_zB#sICzgdq4P9h0+`+WYL zrCXX{7R={o>FHVI{VLJ)X77f)->$@GvlgUY!hPlU1M^(j%TLc|cW7;U#Js2O&R&^l zdv;gpeUpSGcZX@o4Ank2PokQkR^wIY8-xNJn(D=N9%|=Pk%nSwt@22*x*f6UDP4e| zolk`khj^v@8amfTV!R;JKLY29fZgHiZ&DP+tXMDhXN<*{>x;up5Mi~q2uaTfLq^1~ zLMC*_y9#x%z=09!Yxd`<@s?FqO$qEC%05@$Gr12$UuVZK_m!SEj2=8+y7Q8DYl*xf zR&4(LZF)x1l&bfTGweQacvqFzoNwqhDyf&PZWG>!*s!=!yvx4h!f=AE9@{+v8oR=e z`B1b88)buGe1kV8SiifbGA{4&l&R#|a#dIP!=n9T3<_#QZ%O!NQg)CiUTIH_Sc^(N zjCEYZ`Tuad`=kT3@+i2{#P$Su48{0|SlbrAvYc_2MMQ*ghmXXoF6#Fjag%vI&b5c+ zyGOo^(pf&h;@eUAPu2$VixZ~s-VQusj1$_n0*?Qhc7^MX$+)~fOVlqn$>nW})t|RG zc#PIUXgKx~Uhzj5BYZ8cqy+MlQo zD72Q(H5l&My*9m>>)Xk23BHDvVRL$1W#n47?TG5mqQFLH6(L=jenTK?#x1yu@Il}n z%|T{)Vy(aq$=>kD>k-7$vl9ekq~s=eG&7x!x9BE$Q?urkKezC$Bi#d^ZUr?a`xg)#q= zkT=4~C&8La!@65XQFbBYJI@x&`tEpEbY9HM{Oz{)gw=W?&$^&eJ_5VAd-lQJ-V0!HFL2MZ(rIQ#eFwY#Hr1#zZN>gARoAN#0L0G2F~)HcLfRhFCO)dONss)CLs|rzXE4 zBcFs`84Br^JN%bW2jxE;mv6@?g93&%hc!=Oj24%_fWXRGzC%fih=UXt_>cW369r82 ziu;SUowgZ7ptGjRf3TaA@2g?hj~BL490Aa{H*t?nZ8}FYT>p0k$BC8FCigfK6-PxF-<>s zRFN&bEK_x_*l;5={eZ8NBC1^({0-d`szI-`@umvI2Ge{%;|7<83vEMdkB7oL=AU?U z&3IKe7PE`EePR1~l)NAyQExI{g>yt#u22>7Oy9{+jMc`bspO57LfQP5Kdb5DyDzfc z=eE~7HGW#_nS69Iczk)VBP5A?*I}xGNOA@lF7-65#U`)V7C=?eN-g@AG>6^wzbUxm zP{YC%F0+~BNpfmZ0&LZ+L5289!)MN{gj1LF$o|V6FufFZL1dV}_Pv@vAl%Ytq^?mx z4_EFvg2})CYe}ZZ#3N1;%N4?tx2c{I%q3^INlQ4{j?2AhHYC-_xtk|E@rhilrFQWr zwR)aXS%)jnD;HOd2s4=tMa$9_x5n}s32O3(Z5gyzsG0ogg`O}zx~)RMG7J$IS!k7rGfeZa8inn9Zz z_n#X)vuCay>GhiU|G{*n%=+taxP*A4utoq!*cI)Ft+1U8?X^r?VN%n|FO7k|g(C%G zrmAGp`-c3)VVbjnC||>qkeUV+LJV=T!A#0o>{Ocf`J-zF*asW>cS;uvcf=AZP}Z_g z!`)YlzPnF0g4wM)Ov-xHcRlo+9)ZmuDL6rj{yRj+sa0CzR0i4F7^ufOP>8K`*T3P5 zm6y7=I;4G(`*>0qv-rkS!**{6W_S=c67X)jPr;TwPJXU)f_D0qErNB={`F4XsZ98s z)(1+PFvo3}OnPX`Er3IrBI5_4Ib8Qku*h3^8)VBTj)Ye6y+;F6apy~26bzYO!tb@S zw522!GF}g}Zq7KD@W5e-^m0!)mx2l+X2qpK{w>|Jhz}TBzI|puH@HV*6BPN ztCh=Wj875Rv<&&n#KYkvwZzFH6`7C@GGx&f&-4r#A^T_&J4n`eoQT6~R@wQ)*VrKA zbg045E5J?x=ai3sSo6wcw(wdtsv%46C+5aS|1+|Gj zTMi5Plmo22Y))$NZQEUwpA5EXSAVx=`$zqqugB;0wKDjBK2YrxO@~Z{W=gOq9*G$T zQ~8$9EX=yI9#FfFPA?U|K6)Em1ilq|ytIvze<&h^{X}-Hg;*TPPXM6G+URJn^Q{tU ziYfHc^WgG}QqP?1D%yy5m|l7Jaq-&VeE3X`?zik+kIwVnhFUL7-b4t5y*>{uTHJc1 z^;$yTl%pgtxMwn~KzzmCaoSQn38I#Tp8lwCdVJ>jropU6f9rhxgUwz#c=X@uneekD z!4R_}-v*i1dEZY|vn^`Ik=(DmBROJj+>ymYl)p~D&*p=+mx&drkbNxMG5wR)A8vCw zV^#BoOVi50y4$fGC+}p^X9Mt}#lguDkl{hCjgUlWs~;B*6!!bE=i!K=;NbF5Igc>%% z|AQ)Ofxh&@ih@6fdE^&t&qiC1yg2A1yIEDQ%!#YoZL1=(x*&Z#>q!HaE%(ay5|8)} z!F;sY?)Bor@jsz{zyvj+)v}TnuRwK*g)bcNP7_!@C$y22{xYNOk9v-Udcav`__=%Ht4ivuEz{nn{4nKvgQh;_`AJ2jON%1~ zBEKH3}{m;M9e4O4KqL-e- z*$PkI>UUH3lOMkanQ7*fkv_M%)WA*BvO1z_FqBULsBsxo zF#zoBh|f**3Tu_W(rQX&C;Yxm7pU9mhZ&ju0oP-_)MJKP^h96u=UxjV@0=N|8E;=( z@fw}ZU^!h;cr2%VP`42*uIBQ)`+8UcxQqbiH~k6)JVR60U4aEgU^#X2L(wqrT#r zfd94mHAK$a-^OY@!=WdpxYbE92hsw3dKf5At_2sL?x z+TbShyf2;b@}h6>6*~X26z91;&cT}!l|IbD#%d4gVrjSdvc!ssW&CC=#uQn;sBKkh z`6>fen?qBx(*+qJo|e#z%ab+LW=}%v>9%fr+AEGDtY2r#JB&pPFomr39@Zy=cq7p= z4thd`ifpN z6ZWzQ@WR$KZ8{vm*e1d7F8HKxH%n>j<{&-O+Mi{!eIq%~8c)Svxm_fZ7WXnWF=H09 zIv}sVW3d&wT71(`CvdUq%&IHmX0{0wa(2}@Tw&Nj=}Va77aqdI;4UxxXfEDD$=?fa=qxpUl`da=3$`DNiWTpp+|8cg4&B%*>x;aN!dq+M9l9Mr%Pp zzok@6TpCXUD83k_=(=I; z)nM3qJZouCPEz~wvdi~`4~`5EdlCCY_rq4xa@OgXV*htzc=alZA zEn-Xr^Eac@a38RwPtT*g<3$2++^ONd`SXi^0nZNazZS?x&U+mspU04a47@j+35@fvN^tM_t} zz_TxtYrA{n=W;bKv$jCpd`Ks8o#j`@Pl`6*4O8ZR_33R@g?n3%OsFc@iJxFbA(5Sa z!26*kw|+I8E)XMn0bQRJg&h^k+>>=*hLHouoB*vxked)$n|k3qdn2P56kBRT$IwHL zhMz#ZZT6x)2$et{udGWXx*$>AsAiVXCYV~;p2u{RCI<^@xL4v|3=dWiMd)^N0fU;0 zr`_X%0^3>CZ0{r5;2F^d_thjRV|mac&8{LtO<42oY>J9+whpCIpymtfUoZQ*wRmPD z2bNMB33bunE6yRW|+wib?&3M)Vc_FS@W zz8WU*wc6x!1;g({s>wZh7_|*>6Tcbw0cLZy)S*Jh-#-5Z-HyIp9h*-Dx45As0#Dbq z&;P{}!Ba6as-!DJ{fN_>Jy4Qk_7Fu(wz6=2#}nK3IVK5MR_uIJ2wqEYp=ev=J(66Ga zGp(j(3(QOP7yYi757wqYY4yjoY@US&b7Swd%VVlu?whpO7!-p)tVNnK0t=t=S2 zcH5o%`bW_KvBTBrFj* zug}@ViF_f7mfDqe>1bdfJ$fM%*=*bmGt;{bN(d9LJ4px|(DH+Q7CR|7|G${&7%vA2kx}6`>~*-(^zLfI&x9tn$afqjGbGCVYf& zP1?(R!{>$CDX%eHU;aykKbadJIfkB9aY~5?i?UrKws+CCl`RjG0k|SJjsh3rf!6e% z^H?QY`Jrx1)IZZnkzxPpy{cUX{-?O)-qYB!^oX|GckO!}|Nhf0l-_#+F7kDdHD#nL zC8DHBU&1%m8wgi}{?p7#yA|s6PB!%Y{z4qXwZ3NB#lY^*tF>|TpxGvy6Wk4V&hlbL z&S04nMii_IWte#qY7}}*>Wt%bw#;wh-p#iqtW>xalDBpX_9wkx4>Lf#OTR zUNz#!)qf0bNDM3t%ljtq-Z>b@GXYBpZK17-|JF9Nj9tVS&gYD^*s`ol)_I49ulyJ^ z^Q<5x-=u5Y=w;wuT&EPy`?bvl-=Hm`P-lPMHI$=oi;d2^;xXxm3xCQLKZFpy8{-f1 z(K!k;gds^dkNj+BBY^d&El`?*ZGI|41cBXC{@p_@Grrqq%|O^TC*-y)@{)9L>fn`zKU?|Ifv8rZn}dD#dP)5|b^kNTLh$@U-TxINYuk zrB!Ut@2<0_ADUy5=LsN0;evF)J=qQT^aEeL6jiHdor%H{q_10#+c6#yIr#UA&j%^> znehc-WIh3}c4Ry%F;K!p)$j?q_%eUIxcAq@{OYj7=Ut*!7Ua;-%aHM4{>0L!5KqMA z{xAz}eV6SfCGiJRxx;cbn0w~V=neG_GyjXGQ7C6L&GKnbKAjdI~}0`rYZjm15?g0usPjreMCxh@XZRNAmuIC9KXGM^SRBkO=to*?aG9G&-oOFuhZ4m z8U*Dh!11qgNa4`_11o|z$2+j}nS+J(fJY(gq36e3=J;Az5+fM>-M=OeygY&7sPz{$ zV9d+8i@4aR=9hxBdo7=hnzZKm(cD9CeY&KYs=;05>6G{%_xd`dJ`zVj`{<&h^BwiV z34mjK$#t8+6~WUml+U;M(`Y>-aLZg_t;*@?iB)fWh?Tkc^3BPDxKQjD{rU zp`>MovwwYAniizPxkTJL8@xBbx#ZLaV+W+Qdo4!;jQ#-SCM#1^3m^2*u!$bC|FCudHzi&6?`%&r$U z<|A<%v`kwoFSw}5EjGm*{Z|5I+@U&A&nF+E`xHY;#KH%GMf2ZFT8DtS|Fm@4_}bOI z1|ZQD(X^La{#KEthqw1`6KJe5jbo`v)3zSHuseSJ{-rnP^abBi2N!ITqZCL196-5$IdyYF#4d#! z<-)DSlYJbtY#_O;&6d4-L9V9Ci=;VxQ)o?=Xiil!>7KZesQ7C|g$kN^`%oa4b$QGX z7p*!w+N8Rktu(9)wUu5?AC)10M|S^|a(u}jRd^7>NJAFj~e~Sm*AwW z#G}Ns)f3RWa|Ly86JT^-f4iY>L?#@ez+z(S}USy3IE5;Qkhq|0yE%T~f8@hb(q2M|V&DCSkOuvv0qg8<6MtXdf)~DvtwwQ-G;%`PZByc;!0GQ9g zS&fVIBo{Z15tEv2vDQ1Hk@t2spNF{CHp@bum@gJ+hjWGIG&RJm1bVD6U$R3DkCnmT zUCFXS2iekVgwVEVOkB`^2;@*&xXqME6QXl1!ns_bb)tn!&=_t=tVSG#F78bSP-UyH z?~jNfmii&sODZcZI8Y3TD3D?IB}xCD_@;?NGE1MO!IJhBB$@hBwEhJ2mmC|})F&m* z+jcBw*4u~LqtTWx2H2110Fv%%y)%2=%N*LX%?^Y-Ce=lV5Ve>z&BEecTvk}@&>cDE zkYX;duceROY9ZlBBaqDMFv#hG{#FY;(>4b8`N;q`wR!wERU=C&W86IpZK!$m01Kac zgQ15Xk;;I#!FUm3uEiFx$;Sx#o0Z%3-FVLwKF2qI=c8?^≪0MWn-4Z8^;!P?hUb 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 z%0DV?#mNiU`7vp%&w_pb+pz?e2ln?4Z#gwY(M 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

NhhY5h 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 1 + proj = sum(reshape(proj, NT, nFilt, ops.Nrank),3); +end +trange = int32([-(nt0-1):(nt0-1)]); + +xs = zeros(Params(4), 1, 'single'); +ids = zeros(Params(4), 1, 'int32'); +sts = zeros(Params(4), 1, 'int32'); +Costs = zeros(Params(4), 1, 'single'); +cprojall = zeros(Params(4), nFilt, 'single'); + +i0 = 0; +for k = 1:30 + Ci = bsxfun(@plus, proj, (mu.*lam1)'); + Ci = bsxfun(@rdivide, Ci.^2, 1 + lam1'); + Ci = bsxfun(@minus, Ci, (lam1 .* mu.^2)'); + + [mX, id] = max(Ci,[], 2); + + maX = -my_min(-mX, 31, 1); + id = int32(id); + + st = find((maX < mX + 1e-3) & mX > Th*Th); + st(st>NT-nt0 | st4 + spikeClusters = uint32(1+rez.st3(:,5)); +end +amplitudes = rez.st3(:,3); + +Nchan = rez.ops.Nchan; + +% try +% load(rez.ops.chanMap); +% catch +% chanMap0ind = [0:Nchan-1]'; +% connected = ones(Nchan, 1); +% xcoords = ones(Nchan, 1); +% ycoords = (1:Nchan)'; +% end +% chanMap0 = chanMap(connected>1e-6); + +connected = rez.connected(:); +xcoords = rez.xcoords(:); +ycoords = rez.ycoords(:); +chanMap = rez.ops.chanMap(:); +chanMap0ind = chanMap - 1; + +nt0 = size(rez.W,1); +U = rez.U; +W = rez.W; + +% for i = 1:length(chanMap0) +% chanMap0(i) = chanMap0(i) - sum(chanMap0(i) > chanMap(connected<1e-6)); +% end +% [~, invchanMap0] = sort(chanMap0); + +templates = zeros(Nchan, nt0, rez.ops.Nfilt, 'single'); +for iNN = 1:rez.ops.Nfilt + templates(:,:,iNN) = squeeze(U(:,iNN,:)) * squeeze(W(:,iNN,:))'; +end +templates = permute(templates, [3 2 1]); % now it's nTemplates x nSamples x nChannels +templatesInds = repmat([0:size(templates,3)-1], size(templates,1), 1); % we include all channels so this is trivial + +templateFeatures = rez.cProj; +templateFeatureInds = uint32(rez.iNeigh); +pcFeatures = rez.cProjPC; +pcFeatureInds = uint32(rez.iNeighPC); + +if ~isempty(savePath) + + writeNPY(spikeTimes, fullfile(savePath, 'spike_times.npy')); + writeNPY(uint32(spikeTemplates-1), fullfile(savePath, 'spike_templates.npy')); % -1 for zero indexing + if size(rez.st3,2)>4 + writeNPY(uint32(spikeClusters-1), fullfile(savePath, 'spike_clusters.npy')); % -1 for zero indexing + else + writeNPY(uint32(spikeTemplates-1), fullfile(savePath, 'spike_clusters.npy')); % -1 for zero indexing + end + writeNPY(amplitudes, fullfile(savePath, 'amplitudes.npy')); + writeNPY(templates, fullfile(savePath, 'templates.npy')); + writeNPY(templatesInds, fullfile(savePath, 'templates_ind.npy')); + +% Fs = rez.ops.fs; + conn = logical(connected); + chanMap0ind = int32(chanMap0ind); + + writeNPY(chanMap0ind(conn), fullfile(savePath, 'channel_map.npy')); + %writeNPY(connected, fullfile(savePath, 'connected.npy')); +% writeNPY(Fs, fullfile(savePath, 'Fs.npy')); + writeNPY([xcoords(conn) ycoords(conn)], fullfile(savePath, 'channel_positions.npy')); + + writeNPY(templateFeatures, fullfile(savePath, 'template_features.npy')); + writeNPY(templateFeatureInds'-1, fullfile(savePath, 'template_feature_ind.npy'));% -1 for zero indexing + writeNPY(pcFeatures, fullfile(savePath, 'pc_features.npy')); + writeNPY(pcFeatureInds'-1, fullfile(savePath, 'pc_feature_ind.npy'));% -1 for zero indexing + + whiteningMatrix = rez.Wrot/200; + whiteningMatrixInv = whiteningMatrix^-1; + writeNPY(whiteningMatrix, fullfile(savePath, 'whitening_mat.npy')); + writeNPY(whiteningMatrixInv, fullfile(savePath, 'whitening_mat_inv.npy')); + + if isfield(rez, 'simScore') + similarTemplates = rez.simScore; + writeNPY(similarTemplates, fullfile(savePath, 'similar_templates.npy')); + end + + %make params file + if ~exist(fullfile(savePath,'params.py'),'file') + fid = fopen(fullfile(savePath,'params.py'), 'w'); + + [~, fname, ext] = fileparts(rez.ops.fbinary); + + fprintf(fid,['dat_path = ''',fname ext '''\n']); + fprintf(fid,'n_channels_dat = %i\n',rez.ops.NchanTOT); + fprintf(fid,'dtype = ''int16''\n'); + fprintf(fid,'offset = 0\n'); + if mod(rez.ops.fs,1) + fprintf(fid,'sample_rate = %i\n',rez.ops.fs); + else + fprintf(fid,'sample_rate = %i.\n',rez.ops.fs); + end + fprintf(fid,'hp_filtered = False'); + fclose(fid); + end +end diff --git a/fitTemplates.m b/fitTemplates.m new file mode 100644 index 00000000..a44e7451 --- /dev/null +++ b/fitTemplates.m @@ -0,0 +1,243 @@ +function rez = fitTemplates(rez, DATA, uproj) + +nt0 = rez.ops.nt0; +rez.ops.nt0min = ceil(20 * nt0/61); + +ops = rez.ops; + +rng('default'); +rng(1); + +Nbatch = rez.temp.Nbatch; +Nbatch_buff = rez.temp.Nbatch_buff; + +Nfilt = ops.Nfilt; %256+128; + +ntbuff = ops.ntbuff; +NT = ops.NT; + +Nrank = ops.Nrank; +Th = ops.Th; +maxFR = ops.maxFR; + +Nchan = ops.Nchan; + +batchstart = 0:NT:NT*(Nbatch-Nbatch_buff); + +delta = NaN * ones(Nbatch, 1); +iperm = randperm(Nbatch); + +switch ops.initialize + case 'fromData' + WUinit = optimizePeaks(ops,uproj);%does a scaled kmeans + dWU = WUinit(:,:,1:Nfilt); + % dWU = alignWU(dWU); + otherwise + initialize_waves0; + ipck = randperm(size(Winit,2), Nfilt); + W = []; + U = []; + for i = 1:Nrank + W = cat(3, W, Winit(:, ipck)/Nrank); + U = cat(3, U, Uinit(:, ipck)); + end + W = alignW(W, ops); + + dWU = zeros(nt0, Nchan, Nfilt, 'single'); + for k = 1:Nfilt + wu = squeeze(W(:,k,:)) * squeeze(U(:,k,:))'; + newnorm = sum(wu(:).^2).^.5; + W(:,k,:) = W(:,k,:)/newnorm; + + dWU(:,:,k) = 10 * wu; + end + WUinit = dWU; +end +[W, U, mu, UtU, nu] = decompose_dWU(ops, dWU, Nrank, rez.ops.kcoords); +W0 = W; +W0(NT, 1) = 0; +fW = fft(W0, [], 1); +fW = conj(fW); + +nspikes = zeros(Nfilt, Nbatch); +lam = ones(Nfilt, 1, 'single'); + +freqUpdate = 100 * 4; +iUpdate = 1:freqUpdate:Nbatch; + + +dbins = zeros(100, Nfilt); +dsum = 0; +miniorder = repmat(iperm, 1, ops.nfullpasses); +% miniorder = repmat([1:Nbatch Nbatch:-1:1], 1, ops.nfullpasses/2); + +i = 1; % first iteration + +epu = ops.epu; + + +%% +% pmi = exp(-1./exp(linspace(log(ops.momentum(1)), log(ops.momentum(2)), Nbatch*ops.nannealpasses))); +pmi = exp(-1./linspace(1/ops.momentum(1), 1/ops.momentum(2), Nbatch*ops.nannealpasses)); +% pmi = exp(-linspace(ops.momentum(1), ops.momentum(2), Nbatch*ops.nannealpasses)); + +% pmi = linspace(ops.momentum(1), ops.momentum(2), Nbatch*ops.nannealpasses); +Thi = linspace(ops.Th(1), ops.Th(2), Nbatch*ops.nannealpasses); +if ops.lam(1)==0 + lami = linspace(ops.lam(1), ops.lam(2), Nbatch*ops.nannealpasses); +else + lami = exp(linspace(log(ops.lam(1)), log(ops.lam(2)), Nbatch*ops.nannealpasses)); +end + +if Nbatch_buff1 && ismember(rem(i,Nbatch), iUpdate) %&& i>Nbatch + dWU = gather_try(dWU); + + % break bimodal clusters and remove low variance clusters + if ops.shuffle_clusters &&... + i>Nbatch && rem(rem(i,Nbatch), 4*400)==1 % iNfilt; + j = Nfilt -9; + end + plot(log(1+NSP(j + [0:1:9])), mu(j+ [0:1:9]), 'o'); + xlabel('log of number of spikes') + ylabel('amplitude of template') + hold all + end + axis tight; + title(sprintf('%d ', nswitch)); + subplot(2,2,2) + plot(W(:,:,1)) + title('timecourses of top PC') + + subplot(2,2,3) + imagesc(U(:,:,1)) + title('spatial mask of top PC') + + drawnow + end + % break if last iteration reached + if i>Nbatch * ops.nfullpasses; break; end + + % record the error function for this iteration + rez.errall(ceil(i/freqUpdate)) = nanmean(delta); + + end + + % select batch and load from RAM or disk + ibatch = miniorder(i); + if ibatch>Nbatch_buff + offset = 2 * ops.Nchan*batchstart(ibatch-Nbatch_buff); + fseek(fid, offset, 'bof'); + dat = fread(fid, [NT ops.Nchan], '*int16'); + else + dat = DATA(:,:,ibatch); + end + + % move data to GPU and scale it + if ops.GPU + dataRAW = gpuArray(dat); + else + dataRAW = dat; + end + dataRAW = single(dataRAW); + dataRAW = dataRAW / ops.scaleproc; + + % project data in low-dim space + data = dataRAW * U(:,:); + + if ops.GPU + % run GPU code to get spike times and coefficients + [dWU, ~, id, x,Cost, nsp] = ... + mexMPregMU(Params,dataRAW,W,data,UtU,mu, lam .* (20./mu).^2, dWU, nu); + else + [dWU, ~, id, x,Cost, nsp] = ... + mexMPregMUcpu(Params,dataRAW,fW,data,UtU,mu, lam .* (20./mu).^2, dWU, nu, ops); + end + + dbins = .9975 * dbins; % this is a hard-coded forgetting factor, needs to become an option + if ~isempty(id) + % compute numbers of spikes + nsp = gather_try(nsp(:)); + nspikes(:, ibatch) = nsp; + + % bin the amplitudes of the spikes + xround = min(max(1, int32(x)), 100); + + dbins(xround + id * size(dbins,1)) = dbins(xround + id * size(dbins,1)) + 1; + + % estimate cost function at this time step + delta(ibatch) = sum(Cost)/1e3; + end + + % update status + if ops.verbose && rem(i,20)==1 + nsort = sort(round(sum(nspikes,2)), 'descend'); + fprintf(repmat('\b', 1, numel(msg))); + msg = sprintf('Time %2.2f, batch %d/%d, mu %2.2f, neg-err %2.6f, NTOT %d, n100 %d, n200 %d, n300 %d, n400 %d\n', ... + toc, i,Nbatch* ops.nfullpasses,nanmean(mu(:)), nanmean(delta), round(sum(nsort)), ... + nsort(min(size(W,2), 100)), nsort(min(size(W,2), 200)), ... + nsort(min(size(W,2), 300)), nsort(min(size(W,2), 400))); + fprintf(msg); + end + + % increase iteration counter + i = i+1; +end + +% close the data file if it has been used +if Nbatch_buff100); + cr = mWtW .* (vld * vld'); + cr(isnan(cr)) = 0; + [~, iNgsort] = sort(cr, 1, 'descend'); + + % save full similarity score + rez.simScore = cr; + maskTT = zeros(Nfilt, 'single'); + rez.iNeigh = iNgsort(1:nNeigh, :); + for i = 1:Nfilt + maskTT(rez.iNeigh(:,i),i) = 1; + end +end +if ~isempty(ops.nNeighPC) + nNeighPC = ops.nNeighPC; + load PCspikes + ixt = round(linspace(1, size(Wi,1), ops.nt0)); + Wi = Wi(ixt, 1:3); + rez.cProjPC = zeros(5e6, 3*nNeighPC, 'single'); + + % sort best channels + [~, iNch] = sort(abs(U(:,:,1)), 1, 'descend'); + maskPC = zeros(Nchan, Nfilt, 'single'); + rez.iNeighPC = iNch(1:nNeighPC, :); + for i = 1:Nfilt + maskPC(rez.iNeighPC(:,i),i) = 1; + end + maskPC = repmat(maskPC, 3, 1); +end + +irun = 0; +i1nt0 = int32([1:nt0])'; +%% +LAM = lam .* (20./mu).^2; + +NT = ops.NT; +batchstart = 0:NT:NT*(Nbatch-Nbatch_buff); + +for ibatch = 1:Nbatch + if ibatch>Nbatch_buff + offset = 2 * ops.Nchan*batchstart(ibatch-Nbatch_buff); % - ioffset; + fseek(fid, offset, 'bof'); + dat = fread(fid, [NT ops.Nchan], '*int16'); + else + dat = DATA(:,:,ibatch); + end + if ops.GPU + dataRAW = gpuArray(dat); + else + dataRAW = dat; + end + dataRAW = single(dataRAW); + dataRAW = dataRAW / ops.scaleproc; + + % project data in low-dim space + if ops.GPU + data = gpuArray.zeros(NT, Nfilt, Nrank, 'single'); + else + data = zeros(NT, Nfilt, Nrank, 'single'); + end + for irank = 1:Nrank + data(:,:,irank) = dataRAW * U(:,:,irank); + end + data = reshape(data, NT, Nfilt*Nrank); + + if ops.GPU + [st, id, x, errC, PCproj] ... + = mexMPmuFEAT(Params,data,W,WtW, mu, lam .* (20./mu).^2, nu); + else + [st, id, x, errC, PCproj]= cpuMPmuFEAT(Params,data,fW,WtW, mu, lam .* (20./mu).^2, nu, ops); + end + + if ~isempty(st) + if ~isempty(ops.nNeighPC) + % PCA coefficients + inds = repmat(st', nt0, 1) + repmat(i1nt0, 1, numel(st)); + try datSp = dataRAW(inds(:), :); + catch + datSp = dataRAW(inds(:), :); + end + datSp = reshape(datSp, [size(inds) Nchan]); + coefs = reshape(Wi' * reshape(datSp, nt0, []), size(Wi,2), numel(st), Nchan); + coefs = reshape(permute(coefs, [3 1 2]), [], numel(st)); + coefs = coefs .* maskPC(:, id+1); + iCoefs = reshape(find(maskPC(:, id+1)>0), 3*nNeighPC, []); + rez.cProjPC(irun + (1:numel(st)), :) = gather_try(coefs(iCoefs)'); + end + if ~isempty(ops.nNeigh) + % template coefficients + % transform coefficients + PCproj = bsxfun(@rdivide, ... + bsxfun(@plus, PCproj, LAM.*mu), sqrt(1+LAM)); + + PCproj = maskTT(:, id+1) .* PCproj; + iPP = reshape(find(maskTT(:, id+1)>0), nNeigh, []); + rez.cProj(irun + (1:numel(st)), :) = PCproj(iPP)'; + end + % increment number of spikes + irun = irun + numel(st); + + if ibatch==1; + ioffset = 0; + else + ioffset = ops.ntbuff; + end + st = st - ioffset; + + % nspikes2(1:size(W,2)+1, ibatch) = histc(id, 0:1:size(W,2)); + STT = cat(2, ops.nt0min + double(st) +(NT-ops.ntbuff)*(ibatch-1), ... + double(id)+1, double(x), ibatch*ones(numel(x),1)); + st3 = cat(1, st3, STT); + end + if rem(ibatch,100)==1 +% nsort = sort(sum(nspikes2,2), 'descend'); + fprintf(repmat('\b', 1, numel(msg))); + msg = sprintf('Time %2.2f, batch %d/%d, NTOT %d\n', ... + toc, ibatch,Nbatch, size(st3,1)); + fprintf(msg); + + end +end +%% +[~, isort] = sort(st3(:,1), 'ascend'); +st3 = st3(isort,:); + +rez.st3 = st3; +if ~isempty(ops.nNeighPC) + % re-sort coefficients for projections + rez.cProjPC(irun+1:end, :) = []; + rez.cProjPC = reshape(rez.cProjPC, size(rez.cProjPC,1), [], 3); + rez.cProjPC = rez.cProjPC(isort, :,:); + for ik = 1:Nfilt + iSp = rez.st3(:,2)==ik; + OneToN = 1:nNeighPC; + [~, isortNeigh] = sort(rez.iNeighPC(:,ik), 'ascend'); + OneToN(isortNeigh) = OneToN; + rez.cProjPC(iSp, :,:) = rez.cProjPC(iSp, OneToN, :); + end + + rez.cProjPC = permute(rez.cProjPC, [1 3 2]); +end +if ~isempty(ops.nNeigh) + rez.cProj(irun+1:end, :) = []; + rez.cProj = rez.cProj(isort, :); + + % re-index the template coefficients + for ik = 1:Nfilt + iSp = rez.st3(:,2)==ik; + OneToN = 1:nNeigh; + [~, isortNeigh] = sort(rez.iNeigh(:,ik), 'ascend'); + OneToN(isortNeigh) = OneToN; + rez.cProj(iSp, :) = rez.cProj(iSp, OneToN); + end +end + + +%% +% rez.ops = ops; +rez.W = W; +rez.U = U; +rez.mu = mu; + +rez.t2p = []; +for i = 1:Nfilt + wav0 = W(:,i,1); + wav0 = my_conv(wav0', .5)'; + [~, itrough] = min(wav0); + [~, t2p] = max(wav0(itrough:end)); + rez.t2p(i,1) = t2p; + rez.t2p(i,2) = itrough; +end + +rez.nbins = histc(rez.st3(:,2), .5:1:Nfilt+1); + +[~, rez.ypos] = max(rez.U(:,:,1), [], 1); +if Nbatch_buffcrit); +else + iNonMatch = 1:size(uS,2); + nS = []; +end \ No newline at end of file diff --git a/initialize/optimizePeaks.m b/initialize/optimizePeaks.m new file mode 100644 index 00000000..a10da20e --- /dev/null +++ b/initialize/optimizePeaks.m @@ -0,0 +1,152 @@ +% addpath('C:\CODE\GitHub\KiloSort\preDetect') +function WUinit=optimizePeaks(ops,uproj) + +nt0 = ops.nt0; + +nProj = size(uproj,2); +nSpikesPerBatch = 4000; +inds = 1:nSpikesPerBatch * floor(size(uproj,1)/nSpikesPerBatch); +inds = reshape(inds, nSpikesPerBatch, []); +% Nbatch = size(inds,2); +iperm = randperm(size(inds,2)); +miniorder = repmat(iperm, 1, ops.nfullpasses); +% miniorder = repmat([1:Nbatch Nbatch:-1:1], 1, ops.nfullpasses/2); + +if ~exist('spikes_merged') + uBase = zeros(1e4, nProj); + nS = zeros(1e4, 1); + ncurr = 1; + + for ibatch = 1:size(inds,2) + % merge in with existing templates + uS = uproj(inds(:,ibatch), :); + [nSnew, iNonMatch] = merge_spikes0(uBase(1:ncurr,:), nS(1:ncurr), uS, ops.crit); + nS(1:ncurr) = nSnew; + % + % reduce non-matches + [uNew, nSadd] = reduce_clusters0(uS(iNonMatch,:), ops.crit); + + % add new spikes to list + uBase(ncurr + [1:size(uNew,1)], :) = uNew; + nS(ncurr + [1:size(uNew,1)]) = nSadd; + + ncurr = ncurr + size(uNew,1); + + if ncurr>1e4 + break; + end + end + % + nS = nS(1:ncurr); + uBase = uBase(1:ncurr, :); + spikes_merged = 1; +end +[~, itsort] = sort(nS, 'descend'); + +%% initialize U +Nfilt = ops.Nfilt; +lam = ops.lam(1) * ones(Nfilt, 1, 'single'); + +ind_filt = itsort(rem([1:Nfilt]-1, numel(itsort)) + 1); +if ops.GPU + U = gpuArray(uBase(ind_filt, :))'; +else + U = uBase(ind_filt, :)'; +end +U = U + .001 * randn(size(U)); +mu = sum(U.^2,1)'.^.5; +U = normc(U); +% + +for i = 1:10 + + idT = zeros(size(inds)); + dWU = zeros(Nfilt, nProj, 'single'); + if ops.GPU + nToT = gpuArray.zeros(Nfilt, 1, 'single'); + Cost = gpuArray(single(0)); + else + nToT = zeros(Nfilt, 1, 'single'); + Cost = single(0); + end + + for ibatch = 1:size(inds,2) + % find clusters + if ops.GPU + clips = reshape(gpuArray(uproj(inds(:,ibatch), :)), nSpikesPerBatch, nProj); + else + clips = reshape(uproj(inds(:,ibatch), :), nSpikesPerBatch, nProj); + end + ci = clips * U; + + ci = bsxfun(@plus, ci, (mu .* lam)'); + cf = bsxfun(@rdivide, ci.^2, 1 + lam'); + cf = bsxfun(@minus, cf, (mu.^2.*lam)'); + + [max_cf, id] = max(cf, [], 2); + + id = gather_try(id); + % x = ci([1:nSpikesPerBatch] + nSpikesPerBatch * (id-1)')' - mu(id) .* lam(id); + idT(:,ibatch) = id; + + if ops.GPU + L = gpuArray.zeros(Nfilt, nSpikesPerBatch, 'single'); + else + L = zeros(Nfilt, nSpikesPerBatch, 'single'); + end + L(id' + [0:Nfilt:(Nfilt*nSpikesPerBatch-1)]) = 1; + dWU = dWU + L * clips; + + nToT = nToT + sum(L, 2); + Cost = Cost + mean(max_cf); + end + dWU = bsxfun(@rdivide, dWU, nToT); + + U = dWU'; + mu = sum(U.^2,1)'.^.5; + U = normc(U); + Cost = Cost/size(inds,2); + +% disp(Cost) + +% plot(sort(log(1+nToT))) +% drawnow +end +%% +Nchan = ops.Nchan; +Nfilt = ops.Nfilt; +Nrank = ops.Nrank; +wPCA = ops.wPCA(:,1:3); +Urec = reshape(U, Nchan, size(wPCA,2), Nfilt); + +Urec= permute(Urec, [2 1 3]); +Wrec = reshape(wPCA * Urec(:,:), nt0, Nchan, Nfilt); + +Wrec = gather_try(Wrec); + +W = zeros(nt0, Nfilt, Nrank, 'single'); +U = zeros(Nchan, Nfilt, Nrank, 'single'); + +Wrec(isnan(Wrec(:))) = 0; +for j = 1:Nfilt + [w sv u] = svd(Wrec(:,:,j)); + w = w * sv; + + Sv = diag(sv); + W(:,j,:) = w(:, 1:Nrank)/sum(Sv(1:ops.Nrank).^2).^.5; + U(:,j,:) = u(:, 1:Nrank); +end + +Uinit = U; +Winit = W; +mu = gather_try(single(mu)); +muinit = mu; + +WUinit = zeros(nt0, Nchan, Nfilt); +for j = 1:Nfilt + WUinit(:,:,j) = muinit(j) * Wrec(:,:,j); +end +WUinit = single(WUinit); +%% + + diff --git a/initialize/reduce_clusters0.m b/initialize/reduce_clusters0.m new file mode 100644 index 00000000..1081d028 --- /dev/null +++ b/initialize/reduce_clusters0.m @@ -0,0 +1,31 @@ +function [uNew, nSnew]= reduce_clusters0(uS, crit) + + cdot = uS * uS'; + +% compute norms of each spike +newNorms = sum(uS.^2, 2)'; + +% compute sum of pairs of norms +cNorms = 1e-10 + repmat(newNorms', 1, numel(newNorms)) +... + repmat(newNorms, numel(newNorms), 1); + +% compute normalized distance between spikes +cdot = 1 - 2*cdot./cNorms; +cdot = cdot + diag(Inf * diag(cdot)); + +[cmin, newind] = min(single(cdot>crit),[],1); +% if someone else votes you in, your votee doesn't count +% newind(ismember(1:nN, newind)) = []; +newind = unique(newind(cmin<.5)); +if ~isempty(newind) + newind = cat(2, newind, find(cmin>.5)); +else + newind = find(cmin>.5); +end + + +uNew = uS(newind, :); + +nNew = size(uNew,1); + +nSnew = merge_spikes0(uNew, zeros(nNew, 1), uS, crit); \ No newline at end of file diff --git a/licence.txt b/licence.txt new file mode 100644 index 00000000..fe3deb27 --- /dev/null +++ b/licence.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License.s \ No newline at end of file diff --git a/mainLoop/alignW.m b/mainLoop/alignW.m new file mode 100644 index 00000000..ec053510 --- /dev/null +++ b/mainLoop/alignW.m @@ -0,0 +1,20 @@ +function W = alignW(W, ops) + +[nt0 , Nfilt] = size(W); + + +[~, imax] = min(W, [], 1); +dmax = -(imax - ops.nt0min); +% dmax = min(1, abs(dmax)) .* sign(dmax); + +for i = 1:Nfilt + if dmax(i)>0 + W((dmax(i) + 1):nt0, i) = W(1:nt0-dmax(i), i); + else + W(1:nt0+dmax(i), i) = W((1-dmax(i)):nt0, i); + end +end + + + + diff --git a/mainLoop/alignWU.m b/mainLoop/alignWU.m new file mode 100644 index 00000000..8f6057e6 --- /dev/null +++ b/mainLoop/alignWU.m @@ -0,0 +1,31 @@ +function WU = alignWU(WU, ops) + +[nt0 , Nchan, Nfilt] = size(WU); +[~, imin] = min(reshape(WU, nt0*Nchan, Nfilt), [], 1); + +iMinChan = ceil(imin/nt0); + + +% imin = rem(imin-1, nt0) + 1; + +% [~, imax] = min(W, [], 1); +% dmax = -(imin - 20); +% dmax = min(1, abs(dmax)) .* sign(dmax); + +dmax = zeros(Nfilt, 1); +for i = 1:Nfilt + wu = WU(:,iMinChan(i),i); +% [~, imin] = min(diff(wu, 1)); + [~, imin] = min(wu); + dmax(i) = - (imin- ops.nt0min); + + if dmax(i)>0 + WU((dmax(i) + 1):nt0, :,i) = WU(1:nt0-dmax(i),:, i); + else + WU(1:nt0+dmax(i),:, i) = WU((1-dmax(i)):nt0,:, i); + end +end + + + + diff --git a/mainLoop/decompose_dWU.m b/mainLoop/decompose_dWU.m new file mode 100644 index 00000000..35aaa17e --- /dev/null +++ b/mainLoop/decompose_dWU.m @@ -0,0 +1,38 @@ +function [W, U, mu, UtU, nu] = decompose_dWU(ops, dWU, Nrank, kcoords) + +[nt0 Nchan Nfilt] = size(dWU); + +W = zeros(nt0, Nrank, Nfilt, 'single'); +U = zeros(Nchan, Nrank, Nfilt, 'single'); +mu = zeros(Nfilt, 1, 'single'); +% dmax = zeros(Nfilt, 1); + +dWU(isnan(dWU)) = 0; +if ops.parfor + parfor k = 1:Nfilt + [W(:,:,k), U(:,:,k), mu(k)] = get_svds(dWU(:,:,k), Nrank); + end +else + for k = 1:Nfilt + [W(:,:,k), U(:,:,k), mu(k)] = get_svds(dWU(:,:,k), Nrank); + end +end +U = permute(U, [1 3 2]); +W = permute(W, [1 3 2]); + +U(isnan(U)) = 0; + +if numel(unique(kcoords))>1 + U = zeroOutKcoords(U, kcoords, ops.criterionNoiseChannels); +end + +UtU = abs(U(:,:,1)' * U(:,:,1)) > .1; + + +Wdiff = cat(1, W, zeros(2, Nfilt, Nrank)) - cat(1, zeros(2, Nfilt, Nrank), W); +nu = sum(sum(Wdiff.^2,1),3); +nu = nu(:); + + + +% mu = min(mu, 200); \ No newline at end of file diff --git a/mainLoop/get_svds.m b/mainLoop/get_svds.m new file mode 100644 index 00000000..9062eae4 --- /dev/null +++ b/mainLoop/get_svds.m @@ -0,0 +1,27 @@ +function [W, U, mu] = get_svds(dWU, Nrank) + +[Wall, Sv, Uall] = svd(gather_try(dWU), 0); +[~, imax] = max(abs(Wall(:,1))); +Uall(:,1) = -Uall(:,1) * sign(Wall(imax,1)); +Wall(:,1) = -Wall(:,1) * sign(Wall(imax,1)); + +% [~, imin] = min(diff(Wall(:,1), 1)); +% [~, imin] = min(Wall(:,1)); +% dmax(k) = - (imin- 20); + +% if dmax(k)>0 +% dWU((dmax(k) + 1):nt0, :,k) = dWU(1:nt0-dmax(k),:, k); +% Wall((dmax(k) + 1):nt0, :) = Wall(1:nt0-dmax(k),:); +% else +% dWU(1:nt0+dmax(k),:, k) = dWU((1-dmax(k)):nt0,:, k); +% Wall(1:nt0+dmax(k),:) = Wall((1-dmax(k)):nt0,:); +% end + +Wall = Wall * Sv; + +Sv = diag(Sv); +mu = sum(Sv(1:Nrank).^2).^.5; +Wall = Wall/mu; + +W = Wall(:,1:Nrank); +U = Uall(:,1:Nrank); \ No newline at end of file diff --git a/mainLoop/initialize_waves0.m b/mainLoop/initialize_waves0.m new file mode 100644 index 00000000..4fe3c52d --- /dev/null +++ b/mainLoop/initialize_waves0.m @@ -0,0 +1,77 @@ +clear W + +tps = [1 5 10 25 40 50 61]; +tps = round(tps * nt0/61); +vs = [0 0 0 -2 1 0 0]; +fs= interp1(tps, vs, 1:nt0, 'linear', 'extrap'); +W(:,1,1) = my_conv(fs, 2); + +tps = [1 5 10 25 40 50 61]; +tps = round(tps * nt0/61); +vs = [0 0 0 -2 1 0 0]; +fs= interp1(tps, vs, 1:nt0, 'linear', 'extrap'); +W(:,1,2) = my_conv(fs, 2); + +tps = [1 5 10 15 25 50 61]; +tps = round(tps * nt0/61); +vs = [0 0 0 -2 1 0 0]; +fs= interp1(tps, vs, 1:nt0, 'linear', 'extrap'); +W(:,1,3) = my_conv(fs, 2); + +tps = [1 5 10 20 30 50 61]; +tps = round(tps * nt0/61); +vs = [0 0 0 -2 1 0 0]; +fs= interp1(tps, vs, 1:nt0, 'linear', 'extrap'); +W(:,1,4) = my_conv(fs, 2); + +tps = [1 5 10 25 40 50 61]; +tps = round(tps * nt0/61); +vs = [0 0 0 -2 0 0 0]; +fs= interp1(tps, vs, 1:nt0, 'linear', 'extrap'); +W(:,1,5) = my_conv(fs, 2); + +tps = [1 5 10 25 40 50 61]; +tps = round(tps * nt0/61); +vs = [0 0 0 -2 0 0 0]; +fs= interp1(tps, vs, 1:nt0, 'linear', 'extrap'); +W(:,1,6) = my_conv(fs, 2); + +tps = [1 5 10 15 25 50 61]; +tps = round(tps * nt0/61); +vs = [0 0 0 -2 0 0 0]; +fs= interp1(tps, vs, 1:nt0, 'linear', 'extrap'); +W(:,1,7) = my_conv(fs, 2); + +tps = [1 5 10 20 30 50 61]; +tps = round(tps * nt0/61); +vs = [0 0 0 -2 0 0 0]; +fs= interp1(tps, vs, 1:nt0, 'linear', 'extrap'); +W(:,1,8) = my_conv(fs, 2); + + +W = (single(W)); +W = squeeze(W); + + +W = W(:, repmat([1 2 3 4 1 2 3 4], ceil(Nfilt/8), 1)) + .1 * my_conv(randn(nt0, 8*ceil(Nfilt/8), 'single')', 5)'; +U = repmat(eye(Nchan, Nchan), 1, ceil(Nfilt/Nchan)); +U = U(:, 1:Nfilt); +U = my_conv(single(U)', 2)'; +U = U .* (1 + .05 * randn(size(U))); +U(abs(U)<.01) = 0; +U = single(U); + + +if 1<0 + W = randn(nt0, Nfilt, 'single'); + U = randn(Nchan, Nfilt, 'single'); + + W = single(my_conv(W', 10)'); + U = single(my_conv(U', 10)'); + + W = normc(W); + U = normc(U); +end + +Uinit = normc(U); +Winit = normc(W); diff --git a/mainLoop/merge_spikes_in.m b/mainLoop/merge_spikes_in.m new file mode 100644 index 00000000..35eb006e --- /dev/null +++ b/mainLoop/merge_spikes_in.m @@ -0,0 +1,35 @@ +function [nS, iNonMatch] = merge_spikes_in(uBase, nS, uS, crit) + +if ~isempty(uBase) + cdot = uBase(:,:,1)' * uS(:,:,1); + for j = 2:size(uBase,3) + cdot = cdot + uBase(:,:,j)' * uS(:,:,j); + end + + baseNorms = sum(sum(uBase.^2, 3),1); + newNorms = sum(sum(uS.^2, 3),1); + + cNorms = 1e-10 + repmat(baseNorms', 1, numel(newNorms)) + repmat(newNorms, numel(baseNorms), 1); + + cdot = 1 - 2*cdot./cNorms; + + [cdotmin, imin] = min(cdot, [], 1); + + iMatch = cdotmincrit); +else + iNonMatch = 1:size(uS,2); + nS = []; +end \ No newline at end of file diff --git a/mainLoop/mexMPregMUcpu.m b/mainLoop/mexMPregMUcpu.m new file mode 100644 index 00000000..25de67c2 --- /dev/null +++ b/mainLoop/mexMPregMUcpu.m @@ -0,0 +1,49 @@ +function [dWU, st, id, x,Cost, nsp] = ... + mexMPregMUcpu(Params,dataRAW,fW,data,UtU,mu, lam , dWU, nu, ops) + +nt0 = ops.nt0; +NT = Params(1); +nFilt = Params(2); +Th = Params(3); + +pm = Params(8); +fdata = fft(data, [], 1); +proj = real(ifft(fdata .* fW(:,:), [], 1)); + +if ops.Nrank > 1 + proj = sum(reshape(proj, NT, nFilt, ops.Nrank),3); +end +Ci = bsxfun(@plus, proj, (mu.*lam)'); +Ci = bsxfun(@rdivide, Ci.^2, 1 + lam'); +Ci = bsxfun(@minus, Ci, (lam .* mu.^2)'); + +[mX, id] = max(Ci,[], 2); + +maX = -my_min(-mX, 31, 1); +id = int32(id); + +st = find((maX < mX + 1e-3) & mX > Th*Th); +st(st>NT-nt0) = []; + +id = id(st); +x = []; +Cost = []; +nsp = []; + +if ~isempty(id) + inds = bsxfun(@plus, st', [1:nt0]'); + dspk = reshape(dataRAW(inds, :), nt0, numel(st), ops.Nchan); + dspk = permute(dspk, [1 3 2]); + + x = zeros(size(id)); + Cost = zeros(size(id)); + nsp = zeros(nFilt,1); + for j = 1:size(dspk,3) + dWU(:,:,id(j)) = pm * dWU(:,:,id(j)) + (1-pm) * dspk(:,:,j); + x(j) = proj(st(j), id(j)); + Cost(j) = maX(st(j)); + nsp(id(j)) = nsp(id(j)) + 1; + end + + id = id - 1; +end \ No newline at end of file diff --git a/mainLoop/reduce_clusters.m b/mainLoop/reduce_clusters.m new file mode 100644 index 00000000..19afcc6a --- /dev/null +++ b/mainLoop/reduce_clusters.m @@ -0,0 +1,35 @@ +function [uNew, nSnew]= reduce_clusters(uS, crit) + + +cdot = uS(:,:,1)' * uS(:,:,1); +for j = 2:size(uS,3) + cdot = cdot + uS(:,:,j)' * uS(:,:,j); +end + +% compute norms of each spike +newNorms = sum(sum(uS.^2, 3),1); + +% compute sum of pairs of norms +cNorms = 1e-10 + repmat(newNorms', 1, numel(newNorms)) +... + repmat(newNorms, numel(newNorms), 1); + +% compute normalized distance between spikes +cdot = 1 - 2*cdot./cNorms; +cdot = cdot + diag(Inf * diag(cdot)); + +[cmin, newind] = min(single(cdot>crit),[],1); +% if someone else votes you in, your votee doesn't count +% newind(ismember(1:nN, newind)) = []; +newind = unique(newind(cmin<.5)); +if ~isempty(newind) + newind = cat(2, newind, find(cmin>.5)); +else + newind = find(cmin>.5); +end + + +uNew = uS(:,newind, :); + +nNew = size(uNew,2); + +nSnew = merge_spikes_in(uNew, zeros(nNew, 1), uS, crit); \ No newline at end of file diff --git a/mainLoop/update_params.m b/mainLoop/update_params.m new file mode 100644 index 00000000..1b5607a9 --- /dev/null +++ b/mainLoop/update_params.m @@ -0,0 +1,52 @@ +function [W, U, mu, UtU] = update_params(mu, W, U, dWUtot, nspikes) + +[Nchan, Nfilt, Nrank] = size(U); + +dWUtotCPU = gather_try(dWUtot); +ntot = sum(nspikes,2); + +for k = 1:Nfilt + if ntot(k)>5 + + [Uall, Sv, Vall] = svd(gather_try(dWUtotCPU(:,:,k)), 0); + Sv = diag(Sv); + sumSv2 = sum(Sv(1:Nrank).^2).^.5; + for irank = 1:Nrank + [~, imax] = max(abs(Uall(:,irank)), [], 1); + W(:,k,irank) = - Uall(:,irank) * sign(Uall(imax,irank)) * Sv(irank)/sumSv2; + U(:,k,irank) = - Vall(:,irank) * sign(Uall(imax,irank)); + end + mmax = max(abs(U(:,k,1))); + Usize = squeeze(abs(U(:,k,:))); + Usize = Usize .* repmat(Sv(1:Nrank)'/Sv(1), Nchan, 1); + ibad = max(Usize, [], 2) < .1 * mmax; + + U(ibad,k,:) = 0; + end +end + +% mu = zeros(Nfilt,1, 'single'); +for k = 1:Nfilt + if ntot(k)>5 + wu = squeeze(W(:,k,:)) * squeeze(U(:,k,:))'; + mu(k) = sum(sum(wu.*squeeze(dWUtotCPU(:,:,k)))); + end +end + +for k = 1:Nfilt + if ntot(k)>5 + wu = squeeze(W(:,k,:)) * squeeze(U(:,k,:))'; + newnorm = sum(wu(:).^2).^.5; + W(:,k,:) = W(:,k,:)/newnorm; + end +end + +% compute adjacency matrix UtU +U(isnan(U)) = 0; +U0 = gpuArray(U); +utu = gpuArray.zeros(Nfilt, 'single'); +for irank = 1:Nrank + utu = utu + (U0(:,:,irank)' * U0(:,:,irank)); +end + +UtU = logical(utu); diff --git a/mainLoop/zeroOutKcoords.m b/mainLoop/zeroOutKcoords.m new file mode 100644 index 00000000..868c3415 --- /dev/null +++ b/mainLoop/zeroOutKcoords.m @@ -0,0 +1,39 @@ +function U = zeroOutKcoords(U, kcoords, criterionNoiseChannels) + +[M, imax] = max(abs(U(:,:,1)), [], 1); + +% determine over how many channel groups each template exists +aU = sum(U.^2,3).^.5; +ngroups = max(kcoords(:)); + +aUgroups = zeros(ngroups, size(U,2)); +for j = 1:ngroups + aUgroups(j, :) = mean(aU(kcoords==j,:), 1); +end + +% the "effective" number of channel groups is defined below. +% for cases when X channel groups have equal non-zero weights, this number +% equals X +nEffective = sum(aUgroups,1).^2./sum(aUgroups.^2, 1); + +[nEffSort, isort] = sort(nEffective, 'descend'); + +if criterionNoiseChannels<1 + % if this criterion is less than 1, it will be treated as a fraction + % of the total number of clusters + nNoise = ceil(criterionNoiseChannels * size(U,2)); + ThLocal = nEffSort(nNoise); +else + % if this criterion is larger than 1, it will be treated as the + % effective number of channel groups at which to set the threshold + ThLocal = criterionNoiseChannels; +end + + +for i = 1:size(U,2) + if ThLocal > nEffective(i) + U(kcoords~=kcoords(imax(i)),i,:) = 0; + U(:,i,:) = normc(squeeze(U(:,i,:))); + end +end + diff --git a/master_file_example_MOVEME.m b/master_file_example_MOVEME.m new file mode 100644 index 00000000..1db07922 --- /dev/null +++ b/master_file_example_MOVEME.m @@ -0,0 +1,34 @@ +% default options are in parenthesis after the comment + +addpath(genpath('D:\CODE\GitHub\KiloSort')) % path to kilosort folder +addpath(genpath('D:\CODE\GitHub\npy-matlab')) % path to npy-matlab scripts + +pathToYourConfigFile = 'D:\CODE\Kilosort\configFiles'; % take from Github folder and put it somewhere else (together with the master_file) +run(fullfile(pathToYourConfigFile, 'StandardConfig_MOVEME.m')) + +tic; % start timer +% +if ops.GPU + gpuDevice(1); % initialize GPU (will erase any existing GPU arrays) +end + +if strcmp(ops.datatype , 'openEphys') + ops = convertOpenEphysToRawBInary(ops); % convert data, only for OpenEphys +end +% +[rez, DATA, uproj] = preprocessData(ops); % preprocess data and extract spikes for initialization +rez = fitTemplates(rez, DATA, uproj); % fit templates iteratively +rez = fullMPMU(rez, DATA);% extract final spike times (overlapping extraction) + +% AutoMerge. rez2Phy will use for clusters the new 5th column of st3 if you run this) +% rez = merge_posthoc2(rez); + +% save matlab results file +save(fullfile(ops.root, 'rez.mat'), 'rez', '-v7.3'); + +% save python results file for Phy +rezToPhy(rez, ops.root); + +% remove temporary file +delete(ops.fproc); +%% diff --git a/merge_posthoc2.m b/merge_posthoc2.m new file mode 100644 index 00000000..feee9eff --- /dev/null +++ b/merge_posthoc2.m @@ -0,0 +1,122 @@ +function rez = merge_posthoc2(rez) +%fracse = 0.1; +mu = rez.mu; +fracse = rez.ops.fracse; + +ops = rez.ops; +LAM = ops.lam(3) * (20./mu).^2; +Nfilt = rez.ops.Nfilt; + +Cmerge = Inf *ones(Nfilt); +tfi = rez.iNeigh; +tf = rez.cProj; +clusterIDs = rez.st3(:,2); +% +nSpikes = size(rez.st3,1); + +fmax = zeros(nSpikes,1, 'single'); +pairs = {}; +for testID = 1:Nfilt + spikesTest = clusterIDs==testID; +% tfnew = bsxfun(@plus, tf(spikesTest, :), LAM(tfi(:, testID))'.*mu(tfi(:, testID))'); +% tf(spikesTest, :) = bsxfun(@rdivide, tfnew, sqrt(1+LAM(tfi(:, testID)))'); + + pp = tfi(:, testID); + pp(pp==testID) = []; + pairs{testID} = pp; + [~, isame] = min( abs(tfi(:, testID)-testID)); + fmax(spikesTest, 1) = tf(spikesTest, isame); +end + + +% +inewclust = 0; +clear iMegaC +picked = zeros(Nfilt, 1); +% tic +while 1 + [maxseed, iseed] = max(rez.nbins(1:Nfilt) .* (1-picked), [], 1); +% [maxseed, iseed] = max(mu(1:Nfilt) .* (1-picked), [], 1); + if maxseed<500 + break; + end + picked(iseed) = 1; + % 21, 69, + % +% iseed = 410; + + run_list = [iseed]; + pair_list = pairs{iseed}; + strun = find(clusterIDs==iseed); + + + while ~isempty(pair_list) + % +% picked_pairs = rez.nbins(pair_list); + + [mmax, ipair] = max(rez.nbins(pair_list)); + + + if mmax<100 + break; + end + + ipair = pair_list(ipair); + + % + imm = ismember(tfi(:, ipair), run_list); + if sum(imm) + % + new_spikes = find(clusterIDs==ipair); + f1new = max(tf(new_spikes, imm), [], 2); + + f2new = fmax(new_spikes); + + f1old = fmax(strun); + f2old = NaN * ones(numel(f1old), 1, 'single'); + i0 = 0; + for j = 1:length(run_list) + ifeat = find(tfi(:, run_list(j))==ipair); + if ~isempty(ifeat) + f2old(i0 + (1:rez.nbins(run_list(j))),1) = ... + tf(clusterIDs==run_list(j), ifeat); + i0 = i0 + rez.nbins(run_list(j)); + end + end + + f1old(isnan(f2old))=[]; + f2old(isnan(f2old))=[]; + mo = merging_score(f1old - f2old, f1new-f2new, ops.fracse); + + + if mo<3 + strun = cat(1, strun, new_spikes); + run_list(end+1) = ipair; + picked(ipair) = 1; + if mmax>300 + pair_list = unique(cat(1, pair_list, pairs{ipair})); + pair_list(ismember(pair_list, run_list)) = []; + end + end + end + pair_list(pair_list==ipair) = []; + end + + inewclust = inewclust + 1; + + iMegaC{inewclust} = run_list; +% [sum(picked) run_list] +end + +% toc +% + +iMega = zeros(Nfilt, 1); +for i = 1:length(iMegaC) + iMega(iMegaC{i}) = iMegaC{i}(1); +end +rez.iMega = iMega; +rez.iMegaC = iMegaC; + + +rez.st3(:,5) = iMega(rez.st3(:,2)); \ No newline at end of file diff --git a/mergesplits/distance_betwxt.m b/mergesplits/distance_betwxt.m new file mode 100644 index 00000000..e6f6ad4e --- /dev/null +++ b/mergesplits/distance_betwxt.m @@ -0,0 +1,21 @@ +function [d2d, iY, drez] = distance_betwxt(dWU) +[nt0, Nchan, Nfilt] = size(dWU); + +dWU = reshape(dWU, nt0*Nchan, Nfilt); +d2d = dWU' * dWU; + +mu = sum(dWU.^2,1).^.5; +mu = mu'; + +muall2 = repmat(mu.^2, 1, Nfilt); +d2d = 1 - 2 * d2d./(1e-30 + muall2+ muall2'); + +d2d = 1- triu(1 - d2d, 1); + +[dMin, iY] = min(d2d, [], 1); + +drez = dMin; + + +end + diff --git a/mergesplits/merging_score.m b/mergesplits/merging_score.m new file mode 100644 index 00000000..5062e501 --- /dev/null +++ b/mergesplits/merging_score.m @@ -0,0 +1,24 @@ +function steps = merging_score(fold, fnew, fracse) + + +troughToPeakRatio = 3; + +l1 = min(fnew); +l2 = max(fold); + +se = (std(fold) + std(fnew))/2; +se25 = fracse * se; +b2 = [0:se25:-l1]; +b1 = [0:se25:l2]; + +hs1 = my_conv(histc(fold, b1), 1); +hs2 = my_conv(histc(-fnew, b2), 1); + +mmax = min(max(hs1), max(hs2)); + +m1 = ceil(mean(fold)/se25); +m2 = -ceil(mean(fnew)/se25); + +steps = sum(hs1(1:m1)splitT); + +mu = sum(sum(dWUtot.^2,1),2).^.5; +mu = mu(:); +freeInd = find(nSpikes<200 | mu'<10 | isnan(mu')); + +for k = 1:nmerged + % merge the two clusters + iMerged = iY(isort(k)); + wt = [nSpikes(iMerged); nSpikes(isort(k))]; + wt = wt/sum(wt); +% mu(iMerged) = [mu(iMerged) mu(isort(k))] * wt; + + dWUtot(:,:,iMerged) = dWUtot(:,:,iMerged) * wt(1) + dWUtot(:,:,isort(k)) * wt(2); + dWUtot(:,:,isort(k)) = 1e-10; + + nspikes(iMerged, :) = nspikes(iMerged, :) + nspikes(isort(k), :); + nspikes(isort(k), :) = 0; +end + + +for k = 1:min(nmerged+numel(freeInd), nsplit) + if k<=numel(freeInd) + inew= freeInd(k); + else + inew = isort(k - numel(freeInd)); + end + + mu0 = mu(iY1(k)); + + % split the bimodal cluster, overwrite merged cluster + mu(inew) = mu1(k); + mu(iY1(k)) = mu2(k); + + dbins(:, inew) = u1(:, k) /Nbatch; + dbins(:, iY1(k)) = u2(:, k) /Nbatch; + + nspikes(inew, :) = nspikes(iY1(k), :)/2; + nspikes(iY1(k), :) = nspikes(iY1(k), :)/2; + dWUtot(:,:,inew) = mu1(k)/mu0 * dWUtot(:,:,iY1(k)); %/npm(iY1(k)); + dWUtot(:,:,iY1(k)) = mu2(k)/mu0 * dWUtot(:,:,iY1(k)); %/npm(iY1(k)); +end + +d2d = pairwise_dists(dWUtot, WUinit); +dmatch = min(d2d, [], 1); + +[~, inovel] = sort(dmatch, 'descend'); +% inovel = find(dmatch(1:1000)>.4); +% inovel = inovel(randperm(numel(inovel))); + +i0 = 0; + +for k = 1+min(nmerged+numel(freeInd), nsplit):nmerged+numel(freeInd) + % add new clusters + i0 = i0 + 1; + if i0>numel(inovel) + break; + end + if k<=numel(freeInd) + inew= freeInd(k); + else + inew = isort(k - numel(freeInd)); + end + + dbins(:, inew) = 1; + + nspikes(inew, :) = 1/8; + + + dWUtot(:,:,inew) = WUinit(:,:,inovel(i0)); %ratio * mu1(k)/mu0 * dWUtot(:,:,iY1(k)); + +end + +nswitch = [min(nmerged, nsplit) i0]; %min(nmerged+numel(freeInd), nsplit); + diff --git a/mergesplits/split_clust.m b/mergesplits/split_clust.m new file mode 100644 index 00000000..843b8fc4 --- /dev/null +++ b/mergesplits/split_clust.m @@ -0,0 +1,78 @@ +function [score, iY, mu1, mu2, u1, u2] = split_clust(uu, nhist) + +nhist = nhist(:); + +nspikes = sum(uu, 1); + +uc = zeros(size(uu)); +for i = 1:size(uu,2) + uc(:,i) = my_conv(uu(:,i)', max(.5, min(4, 2000/nspikes(i))))'; %.5 +% uc(:,i) = my_conv2(uu(:,i), max(.25, min(4, 2000/nspikes(i))), 1); +end +% +uc = uc ./repmat(sum(uc,1),size(uc,1), 1); +ucum = cumsum(uc, 1); +% +dd = diff(uc, 1); + +iY = zeros(1000,1); +mu1 = zeros(1000,1); +mu2 = zeros(1000,1); +var1 = zeros(1000,1); +var2 = zeros(1000,1); +u1 = zeros(size(uu,1), 1000); +u2 = zeros(size(uu,1), 1000); + +maxM = max(uc, [], 1); + +inew = 0; + +Nfilt = size(uu,2); +mu0 = sum(repmat(nhist(1:100, 1), 1, Nfilt) .* uc, 1); +var0 = sum((repmat(nhist(1:100), 1, Nfilt) - repmat(mu0, 100, 1)).^2 .* uc, 1); + +for i = 1:Nfilt + ix = find(dd(1:end-1, i)<0 & dd(2:end, i)>0); + + ix = ix(ucum(ix, i)>.1 & ucum(ix, i)<.8 & uc(ix,i)<.8 * maxM(i)); %.9 not .95 + if nspikes(i) > 500 && numel(ix)>0 + ix = ix(1); + + inew = inew + 1; + + normuc = sum(uc(1:ix, i)); + mu1(inew) = sum(nhist(1:ix) .* uc(1:ix, i)) /normuc; + mu2(inew) = sum(nhist(1+ix:100) .* uc(1+ix:100, i))/(1-normuc); + + var1(inew) = sum((nhist(1:ix)-mu1(inew)).^2 .* uc(1:ix, i)) /normuc; + var2(inew) = sum((nhist(1+ix:100)-mu2(inew)).^2 .* uc(1+ix:100, i))/(1-normuc); + + u1(1:ix,inew) = uu(1:ix, i); + u2(1+ix:100,inew) = uu(1+ix:100, i); + + iY(inew) = i; + end + +end + +mu1 = mu1(1:inew); +mu2 = mu2(1:inew); +var1 = var1(1:inew); +var2 = var2(1:inew); +u1 = u1(:,1:inew); +u2 = u2(:,1:inew); + +n1 = sum(u1,1)'; +n2 = sum(u2,1)'; +iY = iY(1:inew); + +score = 1 - (n1.*var1 + n2.*var2)./((n1+n2).*var0(iY)'); +% score = ((n1+n2).*var0(iY)' - (n1.*var1 + n2.*var2))./var0(iY)'; +[~, isort] = sort(score, 'descend'); + +iY = iY(isort); +mu1 = mu1(isort); +mu2 = mu2(isort); +u1 = u1(:,isort); +u2 = u2(:,isort); +score = score(isort); diff --git a/preProcess/convertOpenEphysToRawBInary.m b/preProcess/convertOpenEphysToRawBInary.m new file mode 100644 index 00000000..e7d1d90f --- /dev/null +++ b/preProcess/convertOpenEphysToRawBInary.m @@ -0,0 +1,71 @@ +function ops = convertOpenEphysToRawBInary(ops) + +fname = fullfile(ops.root, sprintf('%s.dat', ops.fbinary)); +fidout = fopen(fname, 'w'); +% +clear fs +for j = 1:ops.Nchan + fs{j} = dir(fullfile(ops.root, sprintf('*CH%d_*.continuous', j) )); +end +nblocks = cellfun(@(x) numel(x), fs); +if numel(unique(nblocks))>1 + error('different number of blocks for different channels!') +end +% +nBlocks = unique(nblocks); +nSamples = 1024; % fixed to 1024 for now! + +fid = cell(ops.Nchan, 1); + +tic +for k = 1:nBlocks + for j = 1:ops.Nchan + fid{j} = fopen(fullfile(ops.root, fs{j}(k).name)); + % discard header information + fseek(fid{j}, 1024, 0); + end + % + nsamps = 0; + flag = 1; + while 1 + samples = zeros(nSamples * 1000, ops.Nchan, 'int16'); + for j = 1:ops.Nchan + collectSamps = zeros(nSamples * 1000, 1, 'int16'); + + rawData = fread(fid{j}, 1000 * (nSamples + 6), '1030*int16', 10, 'b'); + + nbatches = ceil(numel(rawData)/(nSamples+6)); + for s = 1:nbatches + rawSamps = rawData((s-1) * (nSamples + 6) +6+ [1:nSamples]); + collectSamps((s-1)*nSamples + [1:nSamples]) = rawSamps; + end + samples(:,j) = collectSamps; + end + + if nbatches<1000 + flag = 0; + end + if flag==0 + samples = samples(1:s*nSamples, :); + end + + samples = samples'; + fwrite(fidout, samples, 'int16'); + + nsamps = nsamps + size(samples,2); + + if flag==0 + break; + end + end + ops.nSamplesBlocks(k) = nsamps; + + for j = 1:ops.Nchan + fclose(fid{j}); + end + +end + +fclose(fidout); + +toc \ No newline at end of file diff --git a/preProcess/get_PCproj.m b/preProcess/get_PCproj.m new file mode 100644 index 00000000..fb0fef3f --- /dev/null +++ b/preProcess/get_PCproj.m @@ -0,0 +1,18 @@ +function Us = get_PCproj(S1, row, col, wPCA, maskMaxChans) + +[nT, nChan] = size(S1); +dt = -21 + [1:size(wPCA,1)]; +inds = repmat(row', numel(dt), 1) + repmat(dt', 1, numel(row)); + +clips = reshape(S1(inds, :), numel(dt), numel(row), nChan); + + +mask = repmat([1:nChan], [numel(row) 1]) - repmat(col, 1, nChan); +Mask(1,:,:) = abs(mask)= nt1-1 + imin = imin+1; + end + for i = [imin:icurrent-1 icurrent+1:imax-1] + if (Mask(nt0 + (st0(i) - st0(icurrent)), id0(icurrent), id0(i))) + isol(icurrent) = false; + break; + end + end + + icurrent = icurrent + 1; +end diff --git a/preProcess/isolated_peaks.m b/preProcess/isolated_peaks.m new file mode 100644 index 00000000..15ad9948 --- /dev/null +++ b/preProcess/isolated_peaks.m @@ -0,0 +1,12 @@ +function [row, col, mu] = isolated_peaks(S1, loc_range, long_range, Th) +% loc_range = [3 1]; +% long_range = [30 6]; +smin = my_min(S1, loc_range, [1 2]); +peaks = single(S11e-6); + xc = xcoords(connected>1e-6); + yc = ycoords(connected>1e-6); + catch + chanMapConn = 1+chanNums(connected>1e-6); + xc = zeros(numel(chanMapConn), 1); + yc = [1:1:numel(chanMapConn)]'; + end + ops.Nchan = getOr(ops, 'Nchan', sum(connected>1e-6)); + ops.NchanTOT = getOr(ops, 'NchanTOT', numel(connected)); + if exist('fs', 'var') + ops.fs = getOr(ops, 'fs', fs); + end + else + chanMap = ops.chanMap; + chanMapConn = ops.chanMap; + xc = zeros(numel(chanMapConn), 1); + yc = [1:1:numel(chanMapConn)]'; + connected = true(numel(chanMap), 1); + + ops.Nchan = numel(connected); + ops.NchanTOT = numel(connected); + end +else + chanMap = 1:ops.Nchan; + connected = true(numel(chanMap), 1); + + chanMapConn = 1:ops.Nchan; + xc = zeros(numel(chanMapConn), 1); + yc = [1:1:numel(chanMapConn)]'; +end +if exist('kcoords', 'var') + kcoords = kcoords(connected); +else + kcoords = ones(ops.Nchan, 1); +end +NchanTOT = ops.NchanTOT; +NT = ops.NT ; + +rez.ops = ops; +rez.xc = xc; +rez.yc = yc; +if exist('xcoords') + rez.xcoords = xcoords; + rez.ycoords = ycoords; +else + rez.xcoords = xc; + rez.ycoords = yc; +end +rez.connected = connected; +rez.ops.chanMap = chanMap; +rez.ops.kcoords = kcoords; + +d = dir(ops.fbinary); +ops.sampsToRead = floor(d.bytes/NchanTOT/2); + +if ispc + dmem = memory; + memfree = dmem.MemAvailableAllArrays/8; + memallocated = min(ops.ForceMaxRAMforDat, dmem.MemAvailableAllArrays) - memfree; + memallocated = max(0, memallocated); +else + memallocated = ops.ForceMaxRAMforDat; +end +nint16s = memallocated/2; + +NTbuff = NT + 4*ops.ntbuff; +Nbatch = ceil(d.bytes/2/NchanTOT /(NT-ops.ntbuff)); +Nbatch_buff = floor(4/5 * nint16s/rez.ops.Nchan /(NT-ops.ntbuff)); % factor of 4/5 for storing PCs of spikes +Nbatch_buff = min(Nbatch_buff, Nbatch); + +%% load data into patches, filter, compute covariance +if isfield(ops,'fslow')&&ops.fslowsize(uproj,1) + uproj(1e6 + size(uproj,1), 1) = 0; + end + + uproj(i0 + (1:numel(row)), :) = gather_try(uS); + i0 = i0 + numel(row); + end + + if ibatch<=Nbatch_buff + DATA(:,:,ibatch) = gather_try(datr); + else + datcpu = gather_try(int16(datr)); + fwrite(fidW, datcpu, 'int16'); + end + +end + +if strcmp(ops.initialize, 'fromData') + uproj(i0+1:end, :) = []; +end +Wrot = gather_try(Wrot); +rez.Wrot = Wrot; + +fclose(fidW); +fclose(fid); +if ops.verbose + fprintf('Time %3.2f. Whitened data written to disk... \n', toc); + fprintf('Time %3.2f. Preprocessing complete!\n', toc); +end + + +rez.temp.Nbatch = Nbatch; +rez.temp.Nbatch_buff = Nbatch_buff; + diff --git a/tests/gather_mean_spikes.m b/tests/gather_mean_spikes.m new file mode 100644 index 00000000..27153774 --- /dev/null +++ b/tests/gather_mean_spikes.m @@ -0,0 +1,81 @@ +tic +if ~isempty(ops.chanMap) + load(ops.chanMap); + chanMapConn = chanMap(connected>1e-6); +else + chanMapConn = 1:ops.Nchan; +end +batch_path = fullfile(root, 'batches'); +if ~exist(batch_path, 'dir') + mkdir(batch_path); +end +NchanTOT = ops.NchanTOT; + +d = dir(fullfile(root, fname)); +ops.sampsToRead = floor(d.bytes/NchanTOT/2); + + +NT = 128*1024+ ops.ntbuff; +NTbuff = NT + 4*ops.ntbuff; +Nbatch = ceil(d.bytes/2/NchanTOT /(NT-ops.ntbuff)); + +% load data into patches, filter, compute covariance, write back to +% disk + +fprintf('Time %3.0fs. Loading raw data... \n', toc); +fid = fopen(fullfile(root, fname), 'r'); +ibatch = 0; +Nchan = ops.Nchan; + +Nchans = ops.Nchan; +ts = [1:1:nt0]'; + +clear stimes +for iNN = 1:size(rez.W,2) + stimes{iNN} = rez.st3(rez.st3(:,2)==iNN,1); +end +%stimes = gtimes; + +Wraw = zeros(nt0, Nchans, numel(stimes)); +for ibatch = 1:Nbatch + if ibatch>Nbatch_buff + offset = 2 * ops.Nchan*batchstart(ibatch-Nbatch_buff); % - ioffset; + fseek(fid, offset, 'bof'); + dat = fread(fid, [NT ops.Nchan], '*int16'); + else + dat = DATA(:,:,ibatch); + end + dataRAW = gpuArray(dat); + dataRAW = single(dataRAW); + dataRAW = dataRAW / ops.scaleproc; + + + if ibatch==1; ioffset = 0; + else ioffset = ops.ntbuff; + end + + for iNN = 1:numel(stimes) + st = stimes{iNN} + ioffset - (NT-ops.ntbuff)*(ibatch-1) - 20; + st(st<0) = []; + st(st>NT-ops.ntbuff) = []; + + if ~isempty(st) + inds = repmat(st', nt0, 1) + repmat(ts, 1, numel(st)); + + Wraw(:,:,iNN) = Wraw(:,:,iNN) + ... + gather_try(squeeze(sum(reshape(dataRAW(inds, :), nt0, numel(st), Nchans),2))); + end + end + +end + +for iNN = 1:numel(stimes) + Wraw(:,:,iNN) = Wraw(:,:,iNN)/numel(stimes{iNN}); +end +fprintf('Time %3.2f. Mean waveforms computed... \n', toc); + + + + + + diff --git a/tests/gather_raw_mean_spikes.m b/tests/gather_raw_mean_spikes.m new file mode 100644 index 00000000..6b4eefd1 --- /dev/null +++ b/tests/gather_raw_mean_spikes.m @@ -0,0 +1,92 @@ +tic +nt0 = ops.nt0; + +if ~isempty(ops.chanMap) + load(ops.chanMap); + chanMapConn = chanMap(connected>1e-6); +else + chanMapConn = 1:ops.Nchan; +end +batch_path = fullfile(root, 'batches'); +if ~exist(batch_path, 'dir') + mkdir(batch_path); +end +NchanTOT = ops.NchanTOT; + +d = dir(fullfile(root, fname)); +ops.sampsToRead = floor(d.bytes/NchanTOT/2); + + +NT = 128*1024+ ops.ntbuff; +NTbuff = NT + 4*ops.ntbuff; +Nbatch = ceil(d.bytes/2/NchanTOT /(NT-ops.ntbuff)); + +% load data into patches, filter, compute covariance, write back to +% disk + +fprintf('Time %3.0fs. Loading raw data... \n', toc); +fid = fopen(fullfile(root, fname), 'r'); +ibatch = 0; +Nchan = ops.Nchan; + +Nchans = ops.Nchan; +ts = [1:1:nt0]'; + +clear stimes +% for iNN = 1:size(rez.W,2) +% stimes{iNN} = rez.st3pos(rez.st3pos(:,2)==iNN,1); +% end +stimes = gtimes; + +Wraw = zeros(nt0, Nchans, numel(stimes)); + +while 1 + ibatch = ibatch + 1; + + offset = max(0, 2*NchanTOT*((NT - ops.ntbuff) * (ibatch-1) - 2*ops.ntbuff)); + if ibatch==1 + ioffset = 0; + else + ioffset = ops.ntbuff; + end + fseek(fid, offset, 'bof'); + buff = fread(fid, [NchanTOT NTbuff], '*int16'); + + if isempty(buff) + break; + end + nsampcurr = size(buff,2); + if nsampcurrNT-ops.ntbuff) = []; + + if ~isempty(st) + inds = repmat(st', nt0, 1) + repmat(ts, 1, numel(st)); + + Wraw(:,:,iNN) = Wraw(:,:,iNN) + ... + squeeze(sum(reshape(buff(inds, :), nt0, numel(st), Nchans),2)); + end + end + +end +fclose(fid); + +for iNN = 1:numel(stimes) + Wraw(:,:,iNN) = Wraw(:,:,iNN)/numel(stimes{iNN}); +end +fprintf('Time %3.2f. Mean waveforms computed... \n', toc); + + + + + + diff --git a/tests/plotPCcoefs.m b/tests/plotPCcoefs.m new file mode 100644 index 00000000..475b8e32 --- /dev/null +++ b/tests/plotPCcoefs.m @@ -0,0 +1,4 @@ +clustID = clustID+1; +iSp = find(st3(:,2)==clustID); + +plot(rez.cProjPC(iSp+1,1,1), rez.cProjPC(iSp+1,1,2), '.') \ No newline at end of file diff --git a/tests/plot_final_waveforms.m b/tests/plot_final_waveforms.m new file mode 100644 index 00000000..1fa6c07b --- /dev/null +++ b/tests/plot_final_waveforms.m @@ -0,0 +1,79 @@ +%% +isV1pyr = rez.nbins(1:Nfilt)> 1000 & rez.ypos'>0 & rez.t2p(:,1)>10; +isV1pv = rez.nbins(1:Nfilt)> 1000 & rez.ypos'>0 & rez.t2p(:,1)<=10; +W0 = alignW(W(:,:,1)); + +figure(1) +hist(rez.t2p(rez.nbins>1000,1), 1:1:nt0) +xlabel('trough to peak of templates with >1000 spikes') +set(gcf, 'Color', 'w') +ylabel('number of templates') +% export_fig('fig1.pdf') + +figure(2) +which_cells = find(isV1pyr); +[~, isort] = sort(rez.ypos(which_cells), 'ascend'); +which_cells = which_cells(isort); +subplot(1,2,1) +imagesc(U(:, which_cells,1)) +title('RS templates: spatial profile') +colormap('gray') +subplot(1,2,2) +plot(W0(:, which_cells,1)) +axis tight +title('temporal profile') +set(gcf, 'Color', 'w') +% export_fig('fig2.pdf') + +figure(3) +which_cells = find(isV1pv); +[~, isort] = sort(rez.ypos(which_cells), 'ascend'); +which_cells = which_cells(isort); +subplot(1,2,1) +imagesc(U(:, which_cells,1)) +colormap('gray') + +title('FS templates: spatial profile') +subplot(1,2,2) +plot(W0(:, which_cells,1)) +axis tight +title('temporal profile') +set(gcf, 'Color', 'w') + +% export_fig('fig3.pdf') +%% bad iNN 121, 478 +iscell = rez.nbins(1:Nfilt)> 300; + +[~, isortmu] = sort(mu, 'descend'); + +for i = 1:Nfilt + + ts = -.5:25:2000; + iNN = isortmu(i); + uu = histc(diff(st3pos(st3pos(:,2)==iNN, 1)), ts); + subplot(2,2,1) + bar([-fliplr(ts) ts(2:end)]', [flipud(uu); uu(2:end)]) + axis tight + title(mu(iNN)) + + subplot(2,2,2) + hist(rez.st3pos(rez.st3pos(:,2)==iNN,3), 100) + title(mu(iNN)) + axis tight + + [mWmax, iNN2] = max(mWtW(iNN, 1:Nfilt)); + uu = histc(diff(st3pos(st3pos(:,2)==iNN2, 1)), ts); + subplot(2,2,4) + bar([-fliplr(ts) ts(2:end)]', [flipud(uu); uu(2:end)]) + axis tight + title(mu(iNN2)) + + uu = histc(diff(st3pos(st3pos(:,2)==iNN2 | st3pos(:,2)==iNN, 1)), ts); + subplot(2,2,3) + bar([-fliplr(ts) ts(2:end)]', [flipud(uu); uu(2:end)]) + axis tight + title(mWmax) + + pause +end + diff --git a/tests/plot_waveforms.m b/tests/plot_waveforms.m new file mode 100644 index 00000000..0f9e2f34 --- /dev/null +++ b/tests/plot_waveforms.m @@ -0,0 +1,13 @@ +function plot_waveforms(W) + +W = W - repmat(mean(W,1), size(W,1), 1); + +uu = max(abs(W(:))); + +for i = 1:size(W,2) + plot(i*uu/24 + W(:,i), 'k') + hold all +end +hold off + +axis tight \ No newline at end of file diff --git a/tests/plot_waveforms2.m b/tests/plot_waveforms2.m new file mode 100644 index 00000000..3e54b94f --- /dev/null +++ b/tests/plot_waveforms2.m @@ -0,0 +1,92 @@ +function plot_waveforms2(rez,clusts,s,Wraw) +close all; +ops=rez.ops; + +if nargin<3 + s=[]; + Wraw=[]; +end + +if isempty(clusts) + clusts=1:ops.Nfilt; +end + +for k =clusts + ik = find(rez.st3(:,2)==k); + if length(ik)>5 + figure(k);clf; + colormap('parula') + subplot(1,3,1) + wa = squeeze(rez.U(:,k,:)) * squeeze(rez.W(:,k,:))'; + wa = 200 * wa; + mW=wa(:,21:end); + t=(1:size(mW,2))/ops.fs*1e3; + imagesc(t,(1:size(mW,1)),mW) + title('mean waveform') + xlabel('time (ms)') + axis tight + subplot(2,3,2) + m = sort(rez.st3(ik,3), 'descend');%amplitudes + plot(m,'linewidth',2) + xlabel('sorted spikes') + ylabel('amplitudes') + title('CDF of Amplitude') + axis tight + if ~isempty(s) + subplot(2,3,5) + plot(Wraw(:,:,k),'linewidth',2) + xlabel('time sample') + ylabel('voltage (\muV)') + title('mean waveform') + axis tight + subplot(2,3,3) + Mmax=max(abs(wa), [], 2);%get the max amplitude in each channel + [~, ichan] = max(Mmax); + imagesc(squeeze(s{k,2}(:,:,ichan))') + ylabel('spike index') + xlabel('time sample') + title('Waveform Stability') + axis tight + subplot(2,3,6) + amp=max(squeeze(s{k,2}(:,:,ichan))); + plot(s{k,1}/ops.fs,amp,'.'); + maxAmp(k)=mean(amp); + else + subplot(2,3,5) + plot(t,wa(:,21:end)') + xlabel('time (ms)') + ylabel('voltage (\muV)') + title('mean waveform') + axis tight + tSpike=rez.st3(ik,1)/ops.fs; + subplot(2,3,6) + maxAmp(k)=mean(rez.st3(ik,3)); + plot(tSpike,rez.st3(ik,3),'.'); + axis tight; + xlabel('time (s)') + ylabel('amplitude (\muV)') + title('Spike Raster') + yy=ylim; + ylim([0,yy(2)]) + subplot(2,3,3) + width=.03;%in s + binSize=.0003;%in s + newFs=1/binSize; + % resample at a lower Fs in tune with bins + Sinds=round(tSpike*newFs); + tSpike2=zeros(1,max(Sinds));%this is more memory intensive but faster than a for loop + tSpike2(Sinds)=1; + [c,lags]=xcorr(tSpike2,newFs*width); + c(ceil(end/2))=NaN; + c=c/max(c); + plot(lags*binSize*1e3,c) + xlabel('time (ms)') + ylabel('corr') + title('AutoCorrelogram') + axis tight; + yy=ylim; + ylim([0,yy(2)]); + end + suptitle(sprintf('cluster #%d', k)) + end +end diff --git a/tests/plots_of_template_coefficients.m b/tests/plots_of_template_coefficients.m new file mode 100644 index 00000000..3a5acc49 --- /dev/null +++ b/tests/plots_of_template_coefficients.m @@ -0,0 +1,67 @@ +testID = 156; +mu = rez.mu; +clusterIDs = rez.st3(:,2); +% tfi = rez.iNeigh; +% tf = rez.cProj; + +spikesTest = find(clusterIDs==testID); + +simIDs = rez.iNeigh(:,testID); +% +figure(2) +clf +figure(1) +clf + +LAM = ops.lam(3) * (20./mu).^2; + +nSP = ceil(sqrt(length(simIDs))); +for s = 1:length(simIDs) + simS_T = find(rez.iNeigh(:,simIDs(s))==testID); + spikesSim = find(clusterIDs==simIDs(s)); + + if simIDs(s)~=testID && numel(spikesSim)>20 && ~isempty(simS_T) + figure(2) + subplot(4, 8, s); + + plot(rez.cProj(spikesTest,1), rez.cProj(spikesTest,s), '.') + hold on; + plot(rez.cProj(spikesSim,simS_T), rez.cProj(spikesSim,1), '.') + + title(sprintf('%d vs %d', testID, simIDs(s))) + axis tight + + figure(1) + subplot(nSP/2, 2*nSP, s); + + ft1 = [rez.cProj(spikesTest,1); rez.cProj(spikesSim,simS_T)]; + ft2 = [rez.cProj(spikesTest,s); rez.cProj(spikesSim,1)]; + + ft1 = (ft1 + LAM(testID) * mu(testID)) / sqrt(1 + LAM(testID)); + ft2 = (ft2 + LAM(simIDs(s)) * mu(simIDs(s))) / sqrt(1 + LAM(simIDs(s))); + + df = ft1 - ft2; + l1 = min(df(:)); + l2 = max(df(:)); +% bins = linspace(l1, l2, 100); + df1 = df(1:numel(spikesTest)); + df2 = df(1+numel(spikesTest):end); + + se = (std(df1) + std(df2))/2; + se25 = se/10; + b2 = [0:se25:-l1]; + b1 = [0:se25:l2]; + + hs1 = my_conv(histc(df1, b1), 1); + hs2 = my_conv(histc(-df2, b2), 1); + + + mlow = min(max(hs1(1), hs1(2)), max(hs2(1), hs2(2))); + plot(b1, hs1, 'Linewidth', 2) + hold on + plot(-b2, hs2, 'Linewidth', 2) + hold off + axis tight + title({sprintf('%d vs %d', testID, simIDs(s)), sprintf('%2.2f and %2.2f', max(hs2)/mlow, max(hs1)/mlow)}) + end +end \ No newline at end of file diff --git a/tests/testCodeFromPhy.m b/tests/testCodeFromPhy.m new file mode 100644 index 00000000..a7697f25 --- /dev/null +++ b/tests/testCodeFromPhy.m @@ -0,0 +1,41 @@ +addpath('D:\DATA\Spikes\EvaluationCode') +% datFilename = '20150601_all.dat'; +%% +dd = load('C:\DATA\Spikes\set7\20151102_1_ks_results.mat'); +root = fullfile('C:\DATA\Spikes', sprintf('set%d', idset)); + +fname = 'spike_clustersSorted.npy'; + +gtCluMan = readNPY(fullfile(root, fname)); + +totM = zeros(1000, 1); +for i = 1:1000 + totM(i) = numel(unique(dd.rez.st3(gtCluMan==i, 2))); + nsp(i) = sum(gtCluMan==i); +end +%% +igt = ismember(gtCluMan, find(totM==1 & nsp>1000)); + +% igt = ismember(gtCluMan, 563); + +gtRes = double(dd.rez.st3(igt, 1)); +gtClu = double(gtCluMan(igt, 1)); +%% +testRes = st3(:,1); +testClu = st3(:,2); + +[allScores, allFPrates, allMissRates, allMerges] = ... + compareClustering(gtClu, gtRes, testClu, testRes, []); +% +clid = unique(gtClu); +clear gtimes +for k = 1:length(clid) + gtimes{k} = double(gtRes(gtClu==clid(k))); +end + + +%% +bestPostMerge = []; +for j = 1:length(allScores) + bestPostMerge(j) = allScores{j}(end); +end \ No newline at end of file diff --git a/utils/gather_try.m b/utils/gather_try.m new file mode 100644 index 00000000..d399fba5 --- /dev/null +++ b/utils/gather_try.m @@ -0,0 +1,6 @@ +function x = gather_try(x) + +try + x = gather(x); +catch +end \ No newline at end of file diff --git a/utils/getOr.m b/utils/getOr.m new file mode 100644 index 00000000..539214ad --- /dev/null +++ b/utils/getOr.m @@ -0,0 +1,26 @@ +function v = getOr(s, field, default) +%getOr Returns the structure field or a default if either don't exist +% v = getOr(s, field, [default]) returns the 'field' of the structure 's' +% or 'default' if the structure is empty of the field does not exist. If +% default is not specified it defaults to []. 'field' can also be a cell +% array of fields, in which case it will check for all of them and return +% the value of the first field that exists, if any (otherwise the default +% value). + +if nargin < 3 + default = []; +end + +fieldExists = isfield(s, field); +if any(fieldExists) + if iscellstr(field) + v = s.(field{find(fieldExists, 1)}); + else + v = s.(field); + end +else + v = default; +end + +end + diff --git a/utils/my_conv.m b/utils/my_conv.m new file mode 100644 index 00000000..02a7bf0d --- /dev/null +++ b/utils/my_conv.m @@ -0,0 +1,20 @@ +function Smooth = my_conv(S1, sig, varargin) + +NN = size(S1,1); +NT = size(S1,2); + +dt = -4*sig:1:4*sig; +gaus = exp( - dt.^2/(2*sig^2)); +gaus = gaus'/sum(gaus); + +% Norms = conv(ones(NT,1), gaus, 'same'); +%Smooth = zeros(NN, NT); +%for n = 1:NN +% Smooth(n,:) = (conv(S1(n,:)', gaus, 'same')./Norms)'; +%end + +Smooth = filter(gaus, 1, [S1' ones(NT,1); zeros(ceil(4*sig), NN+1)]); +Smooth = Smooth(1+ceil(4*sig):end, :); +Smooth = Smooth(:,1:NN) ./ (Smooth(:, NN+1) * ones(1,NN)); + +Smooth = Smooth'; \ No newline at end of file diff --git a/utils/my_conv2.m b/utils/my_conv2.m new file mode 100644 index 00000000..f2a7ac7b --- /dev/null +++ b/utils/my_conv2.m @@ -0,0 +1,55 @@ +function S1 = my_conv2(S1, sig, varargin) +% takes an extra argument which specifies which dimension to filter on +% extra argument can be a vector with all dimensions that need to be +% smoothed, in which case sig can also be a vector of different smoothing +% constants + +if sig>.25 + idims = 2; + if ~isempty(varargin) + idims = varargin{1}; + end + if numel(idims)>1 && numel(sig)>1 + sigall = sig; + else + sigall = repmat(sig, numel(idims), 1); + end + + for i = 1:length(idims) + sig = sigall(i); + + idim = idims(i); + Nd = ndims(S1); + + S1 = permute(S1, [idim 1:idim-1 idim+1:Nd]); + + dsnew = size(S1); + + S1 = reshape(S1, size(S1,1), []); + dsnew2 = size(S1); + + % NN = size(S1,1); + % NT = size(S1,2); + + tmax = ceil(4*sig); + dt = -tmax:1:tmax; + gaus = exp( - dt.^2/(2*sig^2)); + gaus = gaus'/sum(gaus); + + % Norms = conv(ones(NT,1), gaus, 'same'); + % Smooth = zeros(NN, NT); + % for n = 1:NN + % Smooth(n,:) = (conv(S1(n,:)', gaus, 'same')./Norms)'; + % end + + cNorm = filter(gaus, 1, cat(1, ones(dsnew2(1), 1), zeros(tmax,1))); + cNorm = cNorm(1+tmax:end, :); + S1 = filter(gaus, 1, cat(1, S1, zeros([tmax, dsnew2(2)]))); + S1(1:tmax, :) = []; + S1 = reshape(S1, dsnew); + + S1 = bsxfun(@rdivide, S1, cNorm); + + S1 = permute(S1, [2:idim 1 idim+1:Nd]); + end +end \ No newline at end of file diff --git a/utils/my_inv.m b/utils/my_inv.m new file mode 100644 index 00000000..4a11d4ae --- /dev/null +++ b/utils/my_inv.m @@ -0,0 +1,7 @@ +function Minv = my_inv(M, eps) + +[U, Sv, V] = svd(M); + +Sv = max(Sv, eps); + +Minv = U * diag(1./diag(Sv)) * V'; \ No newline at end of file diff --git a/utils/my_min.m b/utils/my_min.m new file mode 100644 index 00000000..677ec560 --- /dev/null +++ b/utils/my_min.m @@ -0,0 +1,39 @@ +function S1 = my_min(S1, sig, varargin) +% takes an extra argument which specifies which dimension to filter on +% extra argument can be a vector with all dimensions that need to be +% smoothed, in which case sig can also be a vector of different smoothing +% constants + +idims = 2; +if ~isempty(varargin) + idims = varargin{1}; +end +if numel(idims)>1 && numel(sig)>1 + sigall = sig; +else + sigall = repmat(sig, numel(idims), 1); +end + +for i = 1:length(idims) + sig = sigall(i); + + idim = idims(i); + Nd = ndims(S1); + + S1 = permute(S1, [idim 1:idim-1 idim+1:Nd]); + + dsnew = size(S1); + + S1 = reshape(S1, size(S1,1), []); + dsnew2 = size(S1); + + S1 = cat(1, Inf*ones([sig, dsnew2(2)]),S1, Inf*ones([sig, dsnew2(2)])); + Smax = S1(1:dsnew2(1), :); + for j = 1:2*sig + Smax = min(Smax, S1(j + (1:dsnew2(1)), :)); + end + + S1 = reshape(Smax, dsnew); + + S1 = permute(S1, [2:idim 1 idim+1:Nd]); +end \ No newline at end of file diff --git a/utils/my_sum.m b/utils/my_sum.m new file mode 100644 index 00000000..abef711c --- /dev/null +++ b/utils/my_sum.m @@ -0,0 +1,39 @@ +function S1 = my_sum(S1, sig, varargin) +% takes an extra argument which specifies which dimension to filter on +% extra argument can be a vector with all dimensions that need to be +% smoothed, in which case sig can also be a vector of different smoothing +% constants + +idims = 2; +if ~isempty(varargin) + idims = varargin{1}; +end +if numel(idims)>1 && numel(sig)>1 + sigall = sig; +else + sigall = repmat(sig, numel(idims), 1); +end + +for i = 1:length(idims) + sig = sigall(i); + + idim = idims(i); + Nd = ndims(S1); + + S1 = permute(S1, [idim 1:idim-1 idim+1:Nd]); + + dsnew = size(S1); + + S1 = reshape(S1, size(S1,1), []); + dsnew2 = size(S1); + + S1 = cat(1, 0*ones([sig, dsnew2(2)]),S1, 0*ones([sig, dsnew2(2)])); + Smax = S1(1:dsnew2(1), :); + for j = 1:2*sig + Smax = Smax + S1(j + (1:dsnew2(1)), :); + end + + S1 = reshape(Smax, dsnew); + + S1 = permute(S1, [2:idim 1 idim+1:Nd]); +end \ No newline at end of file diff --git a/utils/normc.m b/utils/normc.m new file mode 100644 index 00000000..b7e68cf1 --- /dev/null +++ b/utils/normc.m @@ -0,0 +1,3 @@ +function v = normc(v) + +v = v./repmat(sum(v.^2, 1), size(v,1),1).^.5; \ No newline at end of file diff --git a/utils/sq.m b/utils/sq.m new file mode 100644 index 00000000..58c40bee --- /dev/null +++ b/utils/sq.m @@ -0,0 +1,4 @@ +function x = sq(x) + + +x = squeeze(x); \ No newline at end of file