Blog Week 11 (16.08.-20.08.)
marsipu
Published: 08/22/2021
What did I do this week?
During this week I worked on left features, adapting the pyqtgraph-backend to tests and fixing remaining bugs. I also wrapped up GSoC by writing a final report. There you can also find instructions on how to test the new backend. I opened a WIP-PR for my mentors to review my work on the new backend. There are still things to do left, which I listed in this issue. And finally I completed the final GSoC-Evaluation.
Where did I get stuck?
At the beginning of the week I really got stuck with implementing fake clicks for pyqtgraph, which are then used by several tests. I had to try a lot and consulted my mentors often until I luckily finally could get it to work never the less.
Thank you!
Since this was my last official week of Google Summer of Code, I will no longer blog here. But you can still reach me via dev@earthman-music.de if you got questions or ideas regarding the new pyqtgraph-backend or other related topics. It was a great experience for me to work on such a project full time before I start my clinical elective next year. I hope that the new backend facilitates the step of data-preprocessing of MEG/EEG-Data for the MNE-Python-Users. Thank you to the pyqtgraph-developers who with their package facilitated accomplishing my project-goals a lot. And a lot of thanks to my mentors, who were always in reach and provided help and feedback wherever they could.
So long, see you on GitHub:)
View Blog Post
Weekly Check-In Week 10 (09.08.-13.08.)
marsipu
Published: 08/15/2021
What did I do this week?
After having finished refactoring most of the refactoring of the matplotlib-backend, this PR could now be merged into MNE-Python. When I started on prototyping with pyqtgraph, I build my own framework for loading and processing data and forwarding parameters into the prototype for visualization. This week I worked a lot on adapting the pyqtgraph-prototype to the framework mne-python provides. Furthermore I noticed, that performance is heavily depending on wether the data is already preloaded in memory. But this can be limiting for large datasets or devices with little amount of RAM. We therefore thought about having a separate thread for loading the data only up to a given range around the visible range.
What is coming up next?
To integrate the pyqtgraph-backend into mne-python, a lot of tests still need to be adapated. And there are some features from the current matplotlib backend missing. When the former is done, we will start then a PR for the first integration of the pyqtgraph-backend as an experimental features.
View Blog Post
Blog Week 9 (02.08.-06.08.)
marsipu
Published: 08/06/2021
What has been done?
The biggest part of the week was taken again by the refactoring of the existing matplotlib-backend inside MNE-Python. I discussed the changes with my mentors on the Pull-Request and implemented their feedback. Now we are at a point, where we probably can merge this first PR soon to pave the way for the next PR with the integration of the pyqtgraph-backend.
What is coming next?
Now that the refactoring is mostly done I will focus again on the pyqtgraph-backend and its adaption to the parent-class BrowserBase which will be inherited by both backends. Furthermore there need to be new methods to test the pyqtgraph-backend (mouse/keyboard-interaction), which may be solved with pytest-qt.
View Blog Post
Weekly Check-In Week 8 (26.07.-30.07.)
marsipu
Published: 07/30/2021
What did I do this week?
As last week this week was about refactoring the existing matplotlib-backend into a new BrowserBase-Class. This time the main-focus was the refactoring of the tests. This included reorganizing the data-import, adding abstract-methods for interaction and adjusting the backend-selection to a get/set/use scheme.
To fix the problem that lines looked different when OpenGL was activated, I opened a PR for pyqtgraph.
What is coming up next?
After finishing the current PR about refactoring the matplotlib-backend, I will soon open a second PR for the integration of the new pyqtgraph-backend into MNE-Python. For this I have to first apply the changes I made to BrowserBase on to the PyQtGraph-Browser-Class and adapt the tests where necessary to make them pass with both possible backends.
Did you get stuck anywhere?
I had some questions about how to refactor the tests (and what pytest-fixtures would have to do with that) which could be resolved by my mentors.
View Blog Post
Blog Week 7 (19.07.-23.07.)
marsipu
Published: 07/26/2021
A week of Refactoring
During the last week I focused on refactoring the backend-independent methods of the matplotlib-backend already implemented in MNE-Python into a new parent-class called BrowserBase. This shall facilitate the side-by-side integration of the new pyqtgraph-backend and avoid duplication of those methods which can be used similiary for both backends (as preparing/preprocessing the data, processing the parameters, etc.).
Next week
I am currently working on refactoring the tests in the same manner so that the pyqtgraph-tests can be integrated into the already existing tests. Afterwards I will start with adjusting the pyqtgraph-prototyp, which until now relies on provisional data-preparation, to BrowserBase.
View Blog Post