ibl-sorter
Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.0%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: int-brain-lab
- License: gpl-2.0
- Language: Python
- Default Branch: main
- Size: 913 KB
Statistics
- Stars: 7
- Watchers: 22
- Forks: 2
- Open Issues: 8
- Releases: 0
Metadata Files
README.md
IBL Spike Sorting
This is the implementation of the IBL spike sorting pipeline described on this white paper: (https://doi.org/10.6084/m9.figshare.19705522.v4). The clustering part is based on the original MATLAB version of Kilosort 2.5, written by Marius Pachitariu.
Usage
We provide a few datasets to explore parametrization and test on several brain regions. The smallest dataset is a 100 seconds excerpt to test the installation. Here is the minimal working example:
```python import shutil from pathlib import Path
from iblsorter.ibl import runspikesortingibl, iblpykilosortparams, downloadtest_data
if name == "main": datapath = Path("/mnt/s0/spikesorting/integrationtests") # path on which the raw data will be downloaded scratchdir = Path.home().joinpath("scratch", 'iblsorter') # temporary path on which intermediate raw data will be written, we highly recommend a SSD drive ksoutputdir = Path("/mnt/s0/spikesorting/outputs") # path containing the kilosort output unprocessed alfpath = ksoutputdir.joinpath( 'alf') # this is the output standardized as per IBL standards (SI units, ALF convention)
# download the integration test data from amazon s3 bucket
bin_file, meta_file = download_test_data(data_path)
# prepare and mop up folder architecture for consecutive runs
DELETE = True # delete the intermediate run products, if False they'll be copied over to the output directory for debugging
shutil.rmtree(scratch_dir, ignore_errors=True)
scratch_dir.mkdir(exist_ok=True)
ks_output_dir.mkdir(parents=True, exist_ok=True)
# loads parameters and run
params = ibl_pykilosort_params(bin_file)
params['Th'] = [6, 3]
run_spike_sorting_ibl(bin_file, delete=DELETE, scratch_dir=scratch_dir,
ks_output_dir=ks_output_dir, alf_path=alf_path, log_level='INFO', params=params)
```
Installation
System Requirements
The code makes extensive use of the GPU via the CUDA framework. A high-end NVIDIA GPU with at least 8GB of memory is required. The solution has been deployed and tested on Cuda 12+ and Python 3.10, 3.11 and 3.12
Python environment
Only on Linux, first install fftw by running the following
sudo apt-get install -y libfftw3-dev
Navigate to the desired location for the repository and clone it
git clone https://github.com/int-brain-lab/ibl-sorter.git
cd ibl-sorter
Installation for cuda 11.x
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install cupy-cuda11x
pip install -e .
Installation for cuda 12.x (as of October 2024, check installation instructions from pytorch for the latest)
pip3 install torch torchvision torchaudio
pip install cupy-cuda12x
pip install -e .
Making sure the installation is successful and CUDA is available
Here we make sure that both cupy and torch are installed and that the CUDA framework is available.
python
from iblsorter.utils import cuda_installation_test
cuda_installation_test()
Then we can run the integration test.
Owner
- Name: International Brain Laboratory
- Login: int-brain-lab
- Kind: organization
- Website: https://www.internationalbrainlab.com/
- Twitter: IntlBrainLab
- Repositories: 41
- Profile: https://github.com/int-brain-lab
Citation (CITATION.cff)
cff-version: 0.0.0
message: "If you use this software, please cite it as below."
authors:
- family-names: International Brain Laboratory
given-names: The
orcid:
- family-names: Banga
given-names: Kush
orcid:
- family-names: Faulkner
given-names: Mayo
orcid:
- family-names: Langfield
given-names: Christopher
orcid:
- family-names: Rossant
given-names: Cyrille
orcid:
- family-names: Winter
given-names: Olivier
orcid:
title: "ibl-sorter"
version: 1.8.0
doi:
date-released: 2024-05-15
url: "https://github.com/int-brain-lab/ibl-sorter"
GitHub Events
Total
- Issues event: 17
- Watch event: 5
- Delete event: 1
- Issue comment event: 7
- Push event: 36
- Pull request event: 1
- Fork event: 2
Last Year
- Issues event: 17
- Watch event: 5
- Delete event: 1
- Issue comment event: 7
- Push event: 36
- Pull request event: 1
- Fork event: 2
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 28
- Total pull requests: 7
- Average time to close issues: 2 months
- Average time to close pull requests: 15 days
- Total issue authors: 7
- Total pull request authors: 3
- Average comments per issue: 0.79
- Average comments per pull request: 0.57
- Merged pull requests: 4
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 13
- Pull requests: 0
- Average time to close issues: 23 days
- Average time to close pull requests: N/A
- Issue authors: 4
- Pull request authors: 0
- Average comments per issue: 0.54
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- oliche (11)
- yunchang-z (5)
- chris-langfield (3)
- florgf88 (1)
- hengweizhu (1)
- mayofaulkner (1)
- grg2rsr (1)
Pull Request Authors
- chris-langfield (7)
- oliche (3)
- grg2rsr (2)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- click *
- cupy *
- ibl-neuropixel >=0.8.0
- matplotlib *
- mock *
- numba *
- numpy *
- phylib *
- pydantic *
- pytest *
- scipy *
- spikeinterface *
- tqdm *
- ibllib *
- seaborn *
- viewephys *