spikewrap
is a tool for automating extracellular electrophysiology analysis.
See the documentation for a quick feature overview and to get started.
spikewrap
provides a lightweight interface to manage the preprocessing and sorting
of extracellular electrophysiological data.
Built on SpikeInterface, spikewrap
offers a convenient wrapper
to run sorting pipelines. It aims to facilitate the sharing of electrophysiology pipelines and standardize project folders.
For example, all runs for a recording session can be preprocessed with:
import spikewrap as sw
subject_path = sw.get_example_data_path() / "rawdata" / "sub-001"
session = sw.Session(
subject_path=subject_path,
session_name="ses-001",
file_format="spikeglx", # or "openephys"
run_names="all",
probe=None, # optional argument to set probe (neuropixels auto-detected)
)
session.preprocess(
configs="neuropixels+kilosort2_5",
per_shank=True,
concat_runs=True,
)
session.save_preprocessed(
overwrite=True,
n_jobs=12,
slurm=True
)
This will output a folder structure like:
└── derivatives/
└── sub-001/
└── ses-001 /
└── ephys/
└── concat_run/
├── preprocessed/
│ ├── shank_0/
│ │ └── si_recording/
│ │ └── <spikeinterface binary>
│ └── shank_1/
│ └── si_recording/
│ └── <spikeinterface binary>
└── sync/
│ └── sync_channel.npy
└── orig_run_names.txt
pip install spikewrap
Contributions to spikewrap
are welcome and appreciated! Please see our contributing guide for details, and don't hesitate to ask any questions on our Zulip Chat.