@@ -185,7 +185,8 @@ def auto_generate_entries(cls, session_key):
185185
186186                probe_dir  =  meta_filepath .parent 
187187                try :
188-                     probe_number  =  re .search ("(imec)?\d{1}$" , probe_dir .name ).group ()
188+                     probe_number  =  re .search (
189+                         "(imec)?\d{1}$" , probe_dir .name ).group ()
189190                    probe_number  =  int (probe_number .replace ("imec" , "" ))
190191                except  AttributeError :
191192                    probe_number  =  meta_fp_idx 
@@ -214,7 +215,8 @@ def auto_generate_entries(cls, session_key):
214215                    }
215216                )
216217        else :
217-             raise  NotImplementedError (f"Unknown acquisition software: { acq_software }  " )
218+             raise  NotImplementedError (
219+                 f"Unknown acquisition software: { acq_software }  " )
218220
219221        probe .Probe .insert (probe_list , skip_duplicates = True )
220222        cls .insert (probe_insertion_list , skip_duplicates = True )
@@ -231,8 +233,7 @@ class InsertionLocation(dj.Manual):
231233        ml_location (decimal (6, 2) ): Medial-lateral location in micrometers. Reference is zero with right side values positive. 
232234        depth (decimal (6, 2) ): Manipulator depth relative to the surface of the brain at zero. Ventral is negative. 
233235        Theta (decimal (5, 2) ): elevation - rotation about the ml-axis in degrees relative to positive z-axis. 
234-         phi (decimal (5, 2) ): azimuth - rotation about the dv-axis in degrees relative to the positive x-axis 
235- 
236+         phi (decimal (5, 2) ): azimuth - rotation about the dv-axis in degrees relative to the positive x-axis. 
236237    """ 
237238
238239    definition  =  """ 
@@ -322,12 +323,14 @@ def make(self, key):
322323                    break 
323324            else :
324325                raise  FileNotFoundError (
325-                     "No SpikeGLX data found for probe insertion: {}" .format (key )
326+                     "No SpikeGLX data found for probe insertion: {}" .format (
327+                         key )
326328                )
327329
328330            if  spikeglx_meta .probe_model  in  supported_probe_types :
329331                probe_type  =  spikeglx_meta .probe_model 
330-                 electrode_query  =  probe .ProbeType .Electrode  &  {"probe_type" : probe_type }
332+                 electrode_query  =  probe .ProbeType .Electrode  &  {
333+                     "probe_type" : probe_type }
331334
332335                probe_electrodes  =  {
333336                    (shank , shank_col , shank_row ): key 
@@ -360,9 +363,11 @@ def make(self, key):
360363                }
361364            )
362365
363-             root_dir  =  find_root_directory (get_ephys_root_data_dir (), meta_filepath )
366+             root_dir  =  find_root_directory (
367+                 get_ephys_root_data_dir (), meta_filepath )
364368            self .EphysFile .insert1 (
365-                 {** key , "file_path" : meta_filepath .relative_to (root_dir ).as_posix ()}
369+                 {** key ,
370+                     "file_path" : meta_filepath .relative_to (root_dir ).as_posix ()}
366371            )
367372        elif  acq_software  ==  "Open Ephys" :
368373            dataset  =  openephys .OpenEphys (session_dir )
@@ -371,7 +376,8 @@ def make(self, key):
371376                    break 
372377            else :
373378                raise  FileNotFoundError (
374-                     "No Open Ephys data found for probe insertion: {}" .format (key )
379+                     "No Open Ephys data found for probe insertion: {}" .format (
380+                         key )
375381                )
376382
377383            if  not  probe_data .ap_meta :
@@ -381,7 +387,8 @@ def make(self, key):
381387
382388            if  probe_data .probe_model  in  supported_probe_types :
383389                probe_type  =  probe_data .probe_model 
384-                 electrode_query  =  probe .ProbeType .Electrode  &  {"probe_type" : probe_type }
390+                 electrode_query  =  probe .ProbeType .Electrode  &  {
391+                     "probe_type" : probe_type }
385392
386393                probe_electrodes  =  {
387394                    key ["electrode" ]: key  for  key  in  electrode_query .fetch ("KEY" )
@@ -394,7 +401,8 @@ def make(self, key):
394401            else :
395402                raise  NotImplementedError (
396403                    "Processing for neuropixels" 
397-                     " probe model {} not yet implemented" .format (probe_data .probe_model )
404+                     " probe model {} not yet implemented" .format (
405+                         probe_data .probe_model )
398406                )
399407
400408            self .insert1 (
@@ -456,7 +464,7 @@ class LFP(dj.Imported):
456464
457465    class  Electrode (dj .Part ):
458466        """Saves local field potential data for each electrode. 
459- 
467+          
460468        Attributes: 
461469            LFP (foreign key): LFP primary key. 
462470            probe.ElectrodeConfig.Electrode (foreign key): probe.ElectrodeConfig.Electrode primary key. 
@@ -476,24 +484,27 @@ class Electrode(dj.Part):
476484
477485    def  make (self , key ):
478486        """Populates the LFP tables.""" 
479-         acq_software  =  (EphysRecording  *  ProbeInsertion  &  key ).fetch1 ("acq_software" )
487+         acq_software  =  (EphysRecording  *  ProbeInsertion  & 
488+                         key ).fetch1 ("acq_software" )
480489
481490        electrode_keys , lfp  =  [], []
482491
483492        if  acq_software  ==  "SpikeGLX" :
484493            spikeglx_meta_filepath  =  get_spikeglx_meta_filepath (key )
485-             spikeglx_recording  =  spikeglx .SpikeGLX (spikeglx_meta_filepath .parent )
494+             spikeglx_recording  =  spikeglx .SpikeGLX (
495+                 spikeglx_meta_filepath .parent )
486496
487497            lfp_channel_ind  =  spikeglx_recording .lfmeta .recording_channels [
488-                 - 1   :: - self ._skip_channel_counts 
498+                 - 1 :: - self ._skip_channel_counts 
489499            ]
490500
491501            # Extract LFP data at specified channels and convert to uV 
492502            lfp  =  spikeglx_recording .lf_timeseries [
493503                :, lfp_channel_ind 
494504            ]  # (sample x channel) 
495505            lfp  =  (
496-                 lfp  *  spikeglx_recording .get_channel_bit_volts ("lf" )[lfp_channel_ind ]
506+                 lfp  * 
507+                 spikeglx_recording .get_channel_bit_volts ("lf" )[lfp_channel_ind ]
497508            ).T   # (channel x sample) 
498509
499510            self .insert1 (
@@ -525,18 +536,21 @@ def make(self, key):
525536                shank , shank_col , shank_row , _  =  spikeglx_recording .apmeta .shankmap [
526537                    "data" 
527538                ][recorded_site ]
528-                 electrode_keys .append (probe_electrodes [(shank , shank_col , shank_row )])
539+                 electrode_keys .append (
540+                     probe_electrodes [(shank , shank_col , shank_row )])
529541        elif  acq_software  ==  "Open Ephys" :
530542            oe_probe  =  get_openephys_probe_data (key )
531543
532544            lfp_channel_ind  =  np .r_ [
533545                len (oe_probe .lfp_meta ["channels_indices" ])
534-                 -  1   : 0   : - self ._skip_channel_counts 
546+                 -  1 : 0 : - self ._skip_channel_counts 
535547            ]
536548
537-             lfp  =  oe_probe .lfp_timeseries [:, lfp_channel_ind ]  # (sample x channel) 
549+             # (sample x channel) 
550+             lfp  =  oe_probe .lfp_timeseries [:, lfp_channel_ind ]
538551            lfp  =  (
539-                 lfp  *  np .array (oe_probe .lfp_meta ["channels_gains" ])[lfp_channel_ind ]
552+                 lfp  * 
553+                 np .array (oe_probe .lfp_meta ["channels_gains" ])[lfp_channel_ind ]
540554            ).T   # (channel x sample) 
541555            lfp_timestamps  =  oe_probe .lfp_timestamps 
542556
@@ -608,7 +622,7 @@ class ClusteringParamSet(dj.Lookup):
608622        ClusteringMethod (dict): ClusteringMethod primary key. 
609623        paramset_desc (varchar(128) ): Description of the clustering parameter set. 
610624        param_set_hash (uuid): UUID hash for the parameter set. 
611-         params (longblob) 
625+         params (longblob): Parameters for clustering with Kilosort.  
612626    """ 
613627
614628    definition  =  """ 
@@ -764,7 +778,8 @@ def auto_generate_entries(cls, ephys_recording_key: dict, paramset_idx: int = 0)
764778        key  =  {** ephys_recording_key , "paramset_idx" : paramset_idx }
765779
766780        processed_dir  =  get_processed_root_data_dir ()
767-         output_dir  =  ClusteringTask .infer_output_dir (key , relative = False , mkdir = True )
781+         output_dir  =  ClusteringTask .infer_output_dir (
782+             key , relative = False , mkdir = True )
768783
769784        try :
770785            kilosort .Kilosort (
@@ -811,7 +826,8 @@ def make(self, key):
811826        )
812827
813828        if  not  output_dir :
814-             output_dir  =  ClusteringTask .infer_output_dir (key , relative = True , mkdir = True )
829+             output_dir  =  ClusteringTask .infer_output_dir (
830+                 key , relative = True , mkdir = True )
815831            # update clustering_output_dir 
816832            ClusteringTask .update1 (
817833                {** key , "clustering_output_dir" : output_dir .as_posix ()}
@@ -1022,7 +1038,8 @@ def make(self, key):
10221038            "acq_software" , "sampling_rate" 
10231039        )
10241040
1025-         sample_rate  =  kilosort_dataset .data ["params" ].get ("sample_rate" , sample_rate )
1041+         sample_rate  =  kilosort_dataset .data ["params" ].get (
1042+             "sample_rate" , sample_rate )
10261043
10271044        # ---------- Unit ---------- 
10281045        # -- Remove 0-spike units 
@@ -1034,7 +1051,8 @@ def make(self, key):
10341051        valid_units  =  kilosort_dataset .data ["cluster_ids" ][withspike_idx ]
10351052        valid_unit_labels  =  kilosort_dataset .data ["cluster_groups" ][withspike_idx ]
10361053        # -- Get channel and electrode-site mapping 
1037-         channel2electrodes  =  get_neuropixels_channel2electrode_map (key , acq_software )
1054+         channel2electrodes  =  get_neuropixels_channel2electrode_map (
1055+             key , acq_software )
10381056
10391057        # -- Spike-times -- 
10401058        # spike_times_sec_adj > spike_times_sec > spike_times 
@@ -1201,7 +1219,8 @@ def yield_unit_waveforms():
12011219        else :
12021220            if  acq_software  ==  "SpikeGLX" :
12031221                spikeglx_meta_filepath  =  get_spikeglx_meta_filepath (key )
1204-                 neuropixels_recording  =  spikeglx .SpikeGLX (spikeglx_meta_filepath .parent )
1222+                 neuropixels_recording  =  spikeglx .SpikeGLX (
1223+                     spikeglx_meta_filepath .parent )
12051224            elif  acq_software  ==  "Open Ephys" :
12061225                session_dir  =  find_full_path (
12071226                    get_ephys_root_data_dir (), get_session_directory (key )
@@ -1249,9 +1268,11 @@ def yield_unit_waveforms():
12491268        self .insert1 (key )
12501269        for  unit_peak_waveform , unit_electrode_waveforms  in  yield_unit_waveforms ():
12511270            if  unit_peak_waveform :
1252-                 self .PeakWaveform .insert1 (unit_peak_waveform , ignore_extra_fields = True )
1271+                 self .PeakWaveform .insert1 (
1272+                     unit_peak_waveform , ignore_extra_fields = True )
12531273            if  unit_electrode_waveforms :
1254-                 self .Waveform .insert (unit_electrode_waveforms , ignore_extra_fields = True )
1274+                 self .Waveform .insert (
1275+                     unit_electrode_waveforms , ignore_extra_fields = True )
12551276
12561277
12571278@schema  
@@ -1396,7 +1417,8 @@ def get_spikeglx_meta_filepath(ephys_recording_key: dict) -> str:
13961417                ProbeInsertion  *  probe .Probe  &  ephys_recording_key 
13971418            ).fetch1 ("probe" )
13981419
1399-             spikeglx_meta_filepaths  =  [fp  for  fp  in  session_dir .rglob ("*.ap.meta" )]
1420+             spikeglx_meta_filepaths  =  [
1421+                 fp  for  fp  in  session_dir .rglob ("*.ap.meta" )]
14001422            for  meta_filepath  in  spikeglx_meta_filepaths :
14011423                spikeglx_meta  =  spikeglx .SpikeGLXMeta (meta_filepath )
14021424                if  str (spikeglx_meta .probe_SN ) ==  inserted_probe_serial_number :
@@ -1436,7 +1458,8 @@ def get_neuropixels_channel2electrode_map(
14361458) ->  dict :
14371459    """Get the channel map for neuropixels probe.""" 
14381460    if  acq_software  ==  "SpikeGLX" :
1439-         spikeglx_meta_filepath  =  get_spikeglx_meta_filepath (ephys_recording_key )
1461+         spikeglx_meta_filepath  =  get_spikeglx_meta_filepath (
1462+             ephys_recording_key )
14401463        spikeglx_meta  =  spikeglx .SpikeGLXMeta (spikeglx_meta_filepath )
14411464        electrode_config_key  =  (
14421465            EphysRecording  *  probe .ElectrodeConfig  &  ephys_recording_key 
@@ -1491,7 +1514,8 @@ def generate_electrode_config(probe_type: str, electrode_keys: list) -> dict:
14911514        dict: representing a key of the probe.ElectrodeConfig table 
14921515    """ 
14931516    # compute hash for the electrode config (hash of dict of all ElectrodeConfig.Electrode) 
1494-     electrode_config_hash  =  dict_to_uuid ({k ["electrode" ]: k  for  k  in  electrode_keys })
1517+     electrode_config_hash  =  dict_to_uuid (
1518+         {k ["electrode" ]: k  for  k  in  electrode_keys })
14951519
14961520    electrode_list  =  sorted ([k ["electrode" ] for  k  in  electrode_keys ])
14971521    electrode_gaps  =  (
@@ -1561,9 +1585,11 @@ def get_recording_channels_details(ephys_recording_key: dict) -> np.array:
15611585    channels_details ["num_channels" ] =  len (channels_details ["channel_ind" ])
15621586
15631587    if  acq_software  ==  "SpikeGLX" :
1564-         spikeglx_meta_filepath  =  get_spikeglx_meta_filepath (ephys_recording_key )
1588+         spikeglx_meta_filepath  =  get_spikeglx_meta_filepath (
1589+             ephys_recording_key )
15651590        spikeglx_recording  =  spikeglx .SpikeGLX (spikeglx_meta_filepath .parent )
1566-         channels_details ["uVPerBit" ] =  spikeglx_recording .get_channel_bit_volts ("ap" )[0 ]
1591+         channels_details ["uVPerBit" ] =  spikeglx_recording .get_channel_bit_volts ("ap" )[
1592+             0 ]
15671593        channels_details ["connected" ] =  np .array (
15681594            [v  for  * _ , v  in  spikeglx_recording .apmeta .shankmap ["data" ]]
15691595        )
0 commit comments