SPIKEPRINT
Do canal extracelular bruto à unidade rotulada, pela linha de comando — com relatório de qualidade que outro humano audita.
- 2024
- instrumentação neural
- em uso em dois laboratórios
- Python · NumPy · CLI · signal processing
o problema
Spike-sorting é o passo entre o que o eletrodo capta e o que a ciência usa, e continua sendo o ritual mais frágil da eletrofisiologia. Cada laboratório tem sua sequência de ferramentas coladas com script; as dependências quebram entre versões de Python; e o parâmetro mais importante — o threshold de detecção — costuma ser ajustado a olho, por quem está com pressa.
O pior não é o retrabalho. É que o resultado (quantas unidades, com qual qualidade) muda conforme a receita, e quase ninguém registra a receita. Comparações entre experimentos viram fé.
a abordagem
O SPIKEPRINT é uma ferramenta de linha de comando com opinião forte: um pipeline fixo, versões travadas e um arquivo de configuração que fica junto com os dados. O filtro, a detecção por threshold (com estimativa automática de ruído) e a clusterização por PCA vivem num binário só — nada de colar notebooks.
A decisão que definiu o projeto foi o relatório: cada rodada emite um HTML com os traços médios de cada unidade, a taxa de violação de refratário e a proporção de ruído — o mínimo para outro pesquisador dizer “eu confio nesta unidade” sem reprocessar nada. Versionamos o binário junto com o dataset; o número da versão entra no relatório.
Tecnicamente: filtragem butterworth em streams (NumPy puro, sem dependência exótica), detecção por desvio robusto (mediana × k) e clusterização k-médias com validação por silhueta. O pré-processamento é lento e honesto: 40 minutos por hora de gravação, rodando em qualquer laptop do laboratório — sem exigir GPU.
estado hoje
Em uso em dois laboratórios parceiros. O pipeline processa ~2 TB por mês entre os dois. A reclamação mais frequente — “falta interface gráfica” — é deliberada: CLI força o arquivo de configuração explícito, que é a parte que evita o ritual.