Adam2392's Blog

Weekly Checkin #4

Adam2392
Published: 07/16/2021

This week, I've been implementing a vector auto-regressive (VAR) model with unit tests, and examples. Some portions of the code were ported from ``scot``, which had a BSD license. Next up, I am planning on adding bivariate/network based statistics, such as Granger causality, or independence testing between two time series from ``statsmodels`` and ``hyppo`` packages. In addition, I plan on adding posthoc graph statistics using ``graspologic``.
View Blog Post

Weekly Blog Post #3

Adam2392
Published: 07/11/2021

What Have I Been Working On: This week, I’ve been working on finishing the "Connectivity" data structure class container. I've successfully used "xarray" as the underlying data structure and implemented improvements in the API to simplify user experience when dealing with different connectivity structures. I've added additional unit tests to bring up the coverage from 79 to 82%. Now I am working on adding additional functionality to the saving/reading of the connectivity data structures as "netCDF" files. In addition, I'm working on improving the API for "envelope correlation" function. Finally, I've implemented storage optimizations for RAM for "symmetric" connectivity arrays. My plan for the upcoming week is to finish these functional improvements and then add in other connectivity functions that were previously implemented in the open-source package "scot". What Have I Been Struggling With: Getting the functional improvements working was difficult, especially with respect to reading/writing files. This is due to some minor bugs with respect to data types. What Solutions Have I Found: I'm trying to convert most of the data types stored within xarray to basic data types. I've also been backtracking my steps to see which changes caused this error.
View Blog Post

Weekly Check In #3

Adam2392
Published: 07/02/2021

This week, I've been implementing and making the API very nice and robust for a general Connectivity data structure that is also memory efficient. It's been very exciting because now we're packaging up all these connectivity functions to return a singular multi-array data structure with semantics for each of its dimensions. This makes use of "xarray", which has been very fun and interesting to learn about. Next up, I will be updating new examples to show usage of this Connectivity data structure and also porting over connectivity functions from the open-source package, "scot".
View Blog Post

Week 3 - Blog Post

Adam2392
Published: 06/28/2021

What Have I Been Working On: This week, I’ve been working on developing a "Connectivity" data structure class container for time-varying connectivity, frequency-varying connectivity, or spectrotemporal connectivity, and their counterparts over "Epochs". I have decided to use "xarray" as a base class for storing the data, since it provides naming and structure for multi-dimensional arrays. This has involved a bit of reading through documentation of "xarray" and discussing with mne developers. In addition, I've made an official v0.1 pypi release, so that I could deprecate the MNE-Python.connectivity submodule. So far, I have successfully updated the unit tests and documentation to work with the new connectivity containers. What Have I Been Struggling With: By switching the codebase to return this new connectivity container class, I may have messed up some memory optimizations that occur in some of the docs building. What Solutions Have I Found: This problem was isolated to be caused by a "sparse" array being represented as a dense array, so now I have to determine the best way to construct a sparse array and pass it as an underlying data representation to the connectivity data structure.
View Blog Post

Week 2 - Check In

Adam2392
Published: 06/21/2021

I've successfully coordinate with one of my MNE mentors in getting the CI setup correctly, such that docs are being deployed, unit tests are occurring and build tests are occurring during every commit to a new PR. The next step is figuring out how to make a release properly by having the CI build the docs and deploy them for a release when wanted. In terms of coding, I have been discussing and perusing the existing mne.connectivity code base to understand what sort of "Connectivity" data structure containers I want to implement to provide to the user. We have decided on a few and I will be implementing their functionality and tests this week!
View Blog Post