Skip to content

Commit

Permalink
Update generation of test data to use SortingAnalyzer
Browse files Browse the repository at this point in the history
  • Loading branch information
alejoe91 committed Aug 21, 2024
1 parent 6356e1f commit ff3b791
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions src/pyflask/manageNeuroconv/manage_neuroconv.py
Original file line number Diff line number Diff line change
Expand Up @@ -1665,11 +1665,11 @@ def generate_test_data(output_path: str):
"""
Autogenerate the data formats needed for the tutorial pipeline.
Consists of a single-probe single-segment SpikeGLX recording (both AP and LF bands) as well as Phy spiking data.
Consists of a single-probe single-segment SpikeGLX recording (both AP and LF bands) as well as Phy sorting data.
"""
import spikeinterface
import spikeinterface as si
from spikeinterface.exporters import export_to_phy
from spikeinterface.preprocessing import bandpass_filter, resample, scale
from spikeinterface.preprocessing import bandpass_filter, decimate, scale

base_path = Path(output_path)
spikeglx_output_folder = base_path / "spikeglx"
Expand All @@ -1684,8 +1684,8 @@ def generate_test_data(output_path: str):
lf_sampling_frequency = 2_500.0
downsample_factor = int(ap_sampling_frequency / lf_sampling_frequency)

# Generate synthetic spiking and voltage traces with waveforms around them
artificial_ap_band_in_uV, spiking = spikeinterface.generate_ground_truth_recording(
# Generate synthetic sorting and voltage traces with waveforms around them
artificial_ap_band_in_uV, sorting = si.generate_ground_truth_recording(
durations=[duration_in_s],
sampling_frequency=ap_sampling_frequency,
num_channels=number_of_channels,
Expand All @@ -1699,7 +1699,7 @@ def generate_test_data(output_path: str):
int16_artificial_ap_band.set_channel_gains(conversion_factor_to_uV)

unscaled_artificial_lf_filter = bandpass_filter(recording=unscaled_artificial_ap_band, freq_min=0.5, freq_max=1_000)
unscaled_artificial_lf_band = resample(recording=unscaled_artificial_lf_filter, resample_rate=2_500)
unscaled_artificial_lf_band = decimate(recording=unscaled_artificial_lf_filter, decimation_factor=downsample_factor)
int16_artificial_lf_band = unscaled_artificial_lf_band.astype(dtype="int16")
int16_artificial_lf_band.set_channel_gains(conversion_factor_to_uV)

Expand All @@ -1710,8 +1710,8 @@ def generate_test_data(output_path: str):

# Make .bin files
ap_file_path.parent.mkdir(parents=True, exist_ok=True)
spikeinterface.write_binary_recording(recording=int16_artificial_ap_band, file_paths=[ap_file_path])
spikeinterface.write_binary_recording(recording=int16_artificial_lf_band, file_paths=[lf_file_path])
si.write_binary_recording(recording=int16_artificial_ap_band, file_paths=[ap_file_path])
si.write_binary_recording(recording=int16_artificial_lf_band, file_paths=[lf_file_path])

# Make .meta files
ap_meta_content = _format_spikeglx_meta_file(bin_file_path=ap_file_path)
Expand All @@ -1723,12 +1723,12 @@ def generate_test_data(output_path: str):
io.write(lf_meta_content)

# Make Phy folder
waveform_extractor = spikeinterface.extract_waveforms(
recording=artificial_ap_band_in_uV, sorting=spiking, mode="memory"
sorting_analyzer = si.create_sorting_analyzer(
sorting=sorting, recording=artificial_ap_band_in_uV, mode="memory", sparse=False
)

export_to_phy(
waveform_extractor=waveform_extractor, output_folder=phy_output_folder, remove_if_exists=True, copy_binary=False
sorting_analyzer=sorting_analyzer, output_folder=phy_output_folder, remove_if_exists=True, copy_binary=False
)


Expand Down

0 comments on commit ff3b791

Please sign in to comment.