SorterPipeline es un pipeline para el análisis de spikesorter utilizando Kilosort4 a través de SpikeInterface. Este pipeline no incluye Phy2, que debe ser instalado por separado (ver sección de instalación).
Este pipeline proporciona herramientas para el análisis de datos de spike sorting, facilitando la integración con Kilosort4 y SpikeInterface para una mayor eficiencia en el procesamiento de datos neuronales.
- Python: Se recomienda usar Anaconda para gestionar entornos.
- CUDA: Asegúrate de tener un controlador CUDA compatible con tu versión de PyTorch.
- PyTorch: Consulta la compatibilidad de versiones entre CUDA y PyTorch.
Sigue estos pasos para instalar el SorterPipeline:
-
Instala Anaconda: Puedes descargarlo desde Anaconda. Recomendacion: Si no quieres utilizar el GUI, utiliza la version compacta "miniconda".
-
Verifica el controlador CUDA: Ejecuta el siguiente comando en la terminal:
nvcc --version
Si no lo tienes instalado, consulta NVIDIA CUDA GPUs
-
Clone el repositorio:
git clone https://github.com/labcnUC/SorterPipeline.git
-
Navegue al directorio del pipeline ⛵:
cd SorterPipeline
-
Cree el env de conda e instala las dependencias (advertencia: Estas estan creadas para funcionar con CUDA 11.8)
conda env create -f environment.yml
-
Verifique la instalación: Inicia Python y ejecuta:
import spikeinterface import kilosort import torch torch.cuda.is_available()
🚨 Si ocurre un error, verifica la compatibilidad de PyTorch consultando las notas de versión de PyTorch para asegurarte de que tu versión de CUDA sea compatible. Instala PyTorch si es necesario utilizando el siguiente enlace: Instalación de PyTorch.
El funcionamiento correcto de CUDA y PyTorch es esencial tanto para DeepLabCut como para otras aplicaciones con requisitos similares.
- Ejecuta Jupyter Lab:
jupyter lab
Después de seguir los pasos de instalación, abre Jupyter Lab y lea el notebook sh_sorterpipeline para comenzar a trabajar en el análisis de spike sorting.
conda create -n phy2 -y python=3.11 cython dask h5py joblib matplotlib numpy pillow pip pyopengl pyqt pyqtwebengine pytest python qtconsole requests responses scikit-learn scipy traitlets
Las contribuciones son bienvenidas. Si deseas contribuir, por favor sigue estos pasos:
- Haz un fork del proyecto.
- Crea una nueva rama (feature/nueva-funcionalidad).
- Realiza cambios y prueba funcionalidades (expandir a otros sorters).
- Envía un pull request.