4
4
import numpy as np
5
5
import inspect
6
6
import importlib
7
- import element_data_loader .utils
7
+ from element_data_loader .utils import find_root_directory , find_full_path , dict_to_uuid
8
8
9
9
from .readers import spikeglx , kilosort , openephys
10
10
from . import probe
@@ -142,8 +142,8 @@ class EphysFile(dj.Part):
142
142
143
143
def make (self , key ):
144
144
145
- session_dir = element_data_loader . utils . find_full_path (get_ephys_root_data_dir (),
146
- get_session_directory (key ))
145
+ session_dir = find_full_path (get_ephys_root_data_dir (),
146
+ get_session_directory (key ))
147
147
148
148
inserted_probe_serial_number = (ProbeInsertion * probe .Probe & key ).fetch1 ('probe' )
149
149
@@ -190,7 +190,8 @@ def make(self, key):
190
190
'acq_software' : acq_software ,
191
191
'sampling_rate' : spikeglx_meta .meta ['imSampRate' ]})
192
192
193
- root_dir = element_data_loader .utils .find_root_directory (get_ephys_root_data_dir (), meta_filepath )
193
+ root_dir = find_root_directory (get_ephys_root_data_dir (),
194
+ meta_filepath )
194
195
self .EphysFile .insert1 ({
195
196
** key ,
196
197
'file_path' : meta_filepath .relative_to (root_dir ).as_posix ()})
@@ -223,8 +224,7 @@ def make(self, key):
223
224
'acq_software' : acq_software ,
224
225
'sampling_rate' : probe_data .ap_meta ['sample_rate' ]})
225
226
226
- root_dir = element_data_loader .utils .find_root_directory (
227
- get_ephys_root_data_dir (),
227
+ root_dir = find_root_directory (get_ephys_root_data_dir (),
228
228
probe_data .recording_info ['recording_files' ][0 ])
229
229
self .EphysFile .insert ([{** key ,
230
230
'file_path' : fp .relative_to (root_dir ).as_posix ()}
@@ -294,9 +294,8 @@ def make(self, key):
294
294
electrode_keys .append (probe_electrodes [(shank , shank_col , shank_row )])
295
295
elif acq_software == 'Open Ephys' :
296
296
297
- session_dir = element_data_loader .utils .find_full_path (
298
- get_ephys_root_data_dir (),
299
- get_session_directory (key ))
297
+ session_dir = find_full_path (get_ephys_root_data_dir (),
298
+ get_session_directory (key ))
300
299
301
300
loaded_oe = openephys .OpenEphys (session_dir )
302
301
oe_probe = loaded_oe .probes [probe_sn ]
@@ -365,7 +364,7 @@ def insert_new_params(cls, processing_method: str, paramset_idx: int,
365
364
'paramset_idx' : paramset_idx ,
366
365
'paramset_desc' : paramset_desc ,
367
366
'params' : params ,
368
- 'param_set_hash' : element_data_loader . utils . dict_to_uuid (params )}
367
+ 'param_set_hash' : dict_to_uuid (params )}
369
368
param_query = cls & {'param_set_hash' : param_dict ['param_set_hash' ]}
370
369
371
370
if param_query : # If the specified param-set already exists
@@ -427,7 +426,7 @@ class Clustering(dj.Imported):
427
426
def make (self , key ):
428
427
task_mode , output_dir = (ClusteringTask & key ).fetch1 (
429
428
'task_mode' , 'clustering_output_dir' )
430
- kilosort_dir = element_data_loader . utils . find_full_path (get_ephys_root_data_dir (), output_dir )
429
+ kilosort_dir = find_full_path (get_ephys_root_data_dir (), output_dir )
431
430
432
431
if task_mode == 'load' :
433
432
kilosort_dataset = kilosort .Kilosort (kilosort_dir ) # check if the directory is a valid Kilosort output
@@ -467,7 +466,7 @@ def create1_from_clustering_task(self, key, curation_note=''):
467
466
468
467
task_mode , output_dir = (ClusteringTask & key ).fetch1 (
469
468
'task_mode' , 'clustering_output_dir' )
470
- kilosort_dir = element_data_loader . utils . find_full_path (get_ephys_root_data_dir (), output_dir )
469
+ kilosort_dir = find_full_path (get_ephys_root_data_dir (), output_dir )
471
470
472
471
creation_time , is_curated , is_qc = kilosort .extract_clustering_info (kilosort_dir )
473
472
# Synthesize curation_id
@@ -503,7 +502,7 @@ class Unit(dj.Part):
503
502
504
503
def make (self , key ):
505
504
output_dir = (Curation & key ).fetch1 ('curation_output_dir' )
506
- kilosort_dir = element_data_loader . utils . find_full_path (get_ephys_root_data_dir (), output_dir )
505
+ kilosort_dir = find_full_path (get_ephys_root_data_dir (), output_dir )
507
506
508
507
kilosort_dataset = kilosort .Kilosort (kilosort_dir )
509
508
acq_software = (EphysRecording & key ).fetch1 ('acq_software' )
@@ -581,7 +580,7 @@ class Waveform(dj.Part):
581
580
582
581
def make (self , key ):
583
582
output_dir = (Curation & key ).fetch1 ('curation_output_dir' )
584
- kilosort_dir = element_data_loader . utils . find_full_path (get_ephys_root_data_dir (), output_dir )
583
+ kilosort_dir = find_full_path (get_ephys_root_data_dir (), output_dir )
585
584
586
585
kilosort_dataset = kilosort .Kilosort (kilosort_dir )
587
586
@@ -623,8 +622,8 @@ def yield_unit_waveforms():
623
622
spikeglx_meta_filepath = get_spikeglx_meta_filepath (key )
624
623
neuropixels_recording = spikeglx .SpikeGLX (spikeglx_meta_filepath .parent )
625
624
elif acq_software == 'Open Ephys' :
626
- session_dir = element_data_loader . utils . find_full_path (get_ephys_root_data_dir (),
627
- get_session_directory (key ))
625
+ session_dir = find_full_path (get_ephys_root_data_dir (),
626
+ get_session_directory (key ))
628
627
openephys_dataset = openephys .OpenEphys (session_dir )
629
628
neuropixels_recording = openephys_dataset .probes [probe_serial_number ]
630
629
@@ -665,13 +664,14 @@ def get_spikeglx_meta_filepath(ephys_recording_key):
665
664
& 'file_path LIKE "%.ap.meta"' ).fetch1 ('file_path' )
666
665
667
666
try :
668
- spikeglx_meta_filepath = element_data_loader . utils . find_full_path (get_ephys_root_data_dir (),
667
+ spikeglx_meta_filepath = find_full_path (get_ephys_root_data_dir (),
669
668
spikeglx_meta_filepath )
670
669
except FileNotFoundError :
671
670
# if not found, search in session_dir again
672
671
if not spikeglx_meta_filepath .exists ():
673
- session_dir = element_data_loader .utils .find_full_path (get_ephys_root_data_dir (),
674
- get_session_directory (ephys_recording_key ))
672
+ session_dir = find_full_path (get_ephys_root_data_dir (),
673
+ get_session_directory (
674
+ ephys_recording_key ))
675
675
inserted_probe_serial_number = (ProbeInsertion * probe .Probe
676
676
& ephys_recording_key ).fetch1 ('probe' )
677
677
@@ -708,8 +708,8 @@ def get_neuropixels_channel2electrode_map(ephys_recording_key, acq_software):
708
708
for recorded_site , (shank , shank_col , shank_row , _ ) in enumerate (
709
709
spikeglx_meta .shankmap ['data' ])}
710
710
elif acq_software == 'Open Ephys' :
711
- session_dir = element_data_loader . utils . find_full_path (get_ephys_root_data_dir (),
712
- get_session_directory (ephys_recording_key ))
711
+ session_dir = find_full_path (get_ephys_root_data_dir (),
712
+ get_session_directory (ephys_recording_key ))
713
713
openephys_dataset = openephys .OpenEphys (session_dir )
714
714
probe_serial_number = (ProbeInsertion & ephys_recording_key ).fetch1 ('probe' )
715
715
probe_dataset = openephys_dataset .probes [probe_serial_number ]
@@ -736,7 +736,7 @@ def generate_electrode_config(probe_type: str, electrodes: list):
736
736
:return: a dict representing a key of the probe.ElectrodeConfig table
737
737
"""
738
738
# compute hash for the electrode config (hash of dict of all ElectrodeConfig.Electrode)
739
- electrode_config_hash = element_data_loader . utils . dict_to_uuid ({k ['electrode' ]: k for k in electrodes })
739
+ electrode_config_hash = dict_to_uuid ({k ['electrode' ]: k for k in electrodes })
740
740
741
741
electrode_list = sorted ([k ['electrode' ] for k in electrodes ])
742
742
electrode_gaps = ([- 1 ]
0 commit comments