Skip to content

Commit a4122be

Browse files
authored
Spikewrap: Motion Correction Preprocessing (#23)
* Add GSoC proposal for spikewrap motion correction * Update spikewrap-Motion-Correction-Preprocessing.md
1 parent 2d1e3f8 commit a4122be

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# spikewrap: Motion Correction Preprocessing (Your-Name)
2+
3+
## Personal details
4+
5+
- **Full name:** Hailey Cheng (Cheng Hei Lam)
6+
- **Email:** [email protected]
7+
- **GitHub username:** heilcheng
8+
- **Zulip username:** Hailey
9+
- **Location & time-zone:** Hong Kong, UTC +08:00
10+
- **Personal website / project portfolio:** https://haileycheng.com/about
11+
12+
## Code contribution
13+
14+
Update feature roadmap with new planned features #227, according to Issue #217 Update roadmap.
15+
https://github.com/neuroinformatics-unit/spikewrap/pull/227
16+
17+
18+
## Project proposal
19+
20+
### Synopsis
21+
22+
This project aims to integrate motion correction preprocessing capabilities into spikewrap, leveraging the functionality available in SpikeInterface. Motion correction is a critical preprocessing step in extracellular electrophysiology, as electrode drift can significantly impact the quality of neural recordings over time. By incorporating motion correction into spikewrap's preprocessing pipeline, we can improve spike sorting accuracy and data reliability without requiring users to implement complex correction algorithms manually.
23+
24+
The primary goals are to:
25+
1. Abstract SpikeInterface's motion correction methods into spikewrap's user-friendly API
26+
2. Implement appropriate parameter validation and error handling
27+
3. Ensure seamless integration with existing preprocessing steps
28+
4. Provide comprehensive documentation and usage examples
29+
30+
The deliverables will include Python modules for motion correction, test coverage for all new functionality, and thorough documentation including practical examples. This addition will significantly enhance spikewrap's utility for neuroscientists working with extracellular recordings, especially during long experimental sessions where electrode drift is common.
31+
32+
### Implementation timeline
33+
34+
**Minimal set of deliverables:**
35+
- Implement motion correction preprocessing functions in spikewrap
36+
- Create unit and integration tests for all new functionality
37+
- Document the new features in the spikewrap documentation
38+
- Develop usage examples demonstrating motion correction workflows
39+
40+
**Stretch goals:**
41+
- Create visualization tools for before/after motion correction comparison
42+
- Implement automated motion detection to suggest when correction might be needed
43+
- Add benchmarking tools to evaluate correction quality
44+
45+
**Detailed weekly timeline (based on 12-week GSoC period):**
46+
47+
| Week | Deliverables | Hours |
48+
|------|--------------|-------|
49+
| Community bonding | Familiarize with spikewrap and SpikeInterface codebases; Set up development environment; Study motion correction algorithms in SpikeInterface | 20 |
50+
| 1 | Investigate SpikeInterface motion correction API; Design integration approach; Create initial PR structure | 30 |
51+
| 2 | Implement core motion correction function wrappers; Begin parameter validation | 30 |
52+
| 3 | Complete parameter validation; Implement error handling; Begin integration with preprocessing pipeline | 30 |
53+
| 4 | Complete integration with preprocessing pipeline; Start writing unit tests | 30 |
54+
| 5 | Complete unit tests; Begin integration tests; Start documentation | 30 |
55+
| 6 | Complete integration tests; Continue documentation; Create initial usage examples | 30 |
56+
| 7 | Review and refine implementation based on mentor feedback; Address any issues | 30 |
57+
| 8 | Implement visualization tools for comparing pre/post motion correction (stretch goal) | 30 |
58+
| 9 | Begin implementing automated motion detection (stretch goal); Continue refining code | 30 |
59+
| 10 | Complete stretch goals implementation; Refine documentation and examples | 30 |
60+
| 11 | Code freeze; Final testing and bug fixes; Complete documentation | 30 |
61+
| 12 | Final polishing; Prepare for submission | 30 |
62+
63+
I plan to dedicate approximately 30 hours per week to this project. This schedule accounts for the complexity of working with electrophysiological data while allowing time for thorough testing and documentation.
64+
65+
### Communication plan
66+
67+
I will maintain regular communication with my mentor through:
68+
- Status updates via Zulip chat
69+
- Code reviews through GitHub pull requests
70+
- Ad-hoc discussions for urgent matters
71+
72+
All code changes will be documented in GitHub pull requests with detailed descriptions. I will maintain a development log to track progress and decisions made during the project.
73+
74+
## Personal statement
75+
76+
### Past experience
77+
78+
I am a sophomore in Mathematics and Computer Science, with a research interest in computational biology. I have a solid foundation in Python, with experience in using scientific libraries such as NumPy, SciPy, and pandas for data analysis, as well as PyTorch for deep learning applications.
79+
80+
In the realm of neuroscience, I have conducted dry lab research under Prof. Tin Chung in CityUHK, focused on analyzing neural activity data using signal processing and machine learning techniques in Python. My work involved building analysis pipelines for spike detection and classification, and I have hands-on experience working with extracellular electrophysiology data.
81+
### Motivation: why this project?
82+
83+
Motion correction is a critical component of electrophysiology data processing that significantly impacts the quality of neural recordings and subsequent analyses. My interest in this project stems from [your specific interest in computational neuroscience/electrophysiology/signal processing]. I believe improving these preprocessing tools will make high-quality neural data analysis more accessible to researchers who may not have expertise in signal processing.
84+
85+
The implementation of motion correction in spikewrap will help bridge the gap between raw data collection and meaningful scientific insights by ensuring that electrode drift doesn't compromise data integrity. This aligns with my personal goal of [your goals related to neuroscience/open science/tool development].
86+
87+
### Match: why you?
88+
89+
Strong programming background, familiarity with electrophysiology data formats and preprocessing, and prior research experience in computational neuroscience uniquely position me for this project.
90+
91+
I am particularly well-suited for this project because I understand both the technical challenges of implementing robust motion correction algorithms and the domain-specific needs of neuroscience researchers. My commitment to clean code, documentation, and collaboration further ensures I can contribute meaningfully to the project and the broader neuroinformatics community.
92+
93+
### Availability
94+
95+
I will be available to commit approximately 30 hours per week to the project during the GSoC period. I plan to frontload preparatory tasks during the Community Bonding period and remain flexible to work evenings and weekends when necessary to meet milestones.
96+
97+
## GSoC
98+
99+
### GSoC experience
100+
101+
From the GSoC program, I expect to gain valuable experience contributing to an open-source scientific software project while receiving mentorship from experts in the field. I look forward to improving my software engineering skills, deepening my understanding of electrophysiology data processing, and becoming an active member of the neuroinformatics community.
102+
103+
I am also applying to DeepChem and Open2C. My top preference is the spikewrap project as it aligns most closely with my current research interests in neuroinformatics and my long-term goal of building accessible, high-impact computational tools for neuroscience.

0 commit comments

Comments
 (0)