I have created and contributed to the following open-source Python packages.
EEG-GAN
I am the team leader on the EEG-GAN Python package project. This open-source package uses Generative Adversarial Networks (GANs) to create trial-level synthetic EEG samples. We can then use these samples as extra data to train whichever classifier we want to use (e.g., Support Vector Machine, Neural Network). GANs are machine learning frameworks that consist of two adversarial neural network agents, namely the generator and the discriminator. The generator is trained to create novel samples that are indiscernible from real samples. In the current context, the generator produces realistic continuous EEG activity, conditioned on a set of experimental variables, which contain underlying neural features representative of the outcomes being classified. For example, depression manifests as increased alpha oscillatory activity in the EEG signal, and thus, an ideal generator would produce continuous EEG that includes these alpha signatures. In contrast to the generator, the discriminator determines whether a given sample is real or synthetically produced by the generator. The core insight of GANs is that the generator can effectively learn from the discriminator. Specifically, the generator will consecutively produce more realistic synthetic samples with the goal of “fooling” the discriminator into believing them as real. Once it has achieved realistic samples that the discriminator cannot discern, it can be used to generate synthetic data—or in this context, synthetic EEG data. Package in Research: Yi et al., 2024 Williams, Weinhardt et al., 2023 Links: Package Documentation Package Repository Equation-Scraper
I am the main developer on the Equation-Scraper Python package project. Equation-scraper is a Python package that scrapes Wikipedia pages for mathematical equations and then parses the equations into its components to build prior distributions. Specifically, these priors include information such as the number of times an operator or function appears across all equations scraped. For example, the expression m*x+b*sin(y) would be parsed into the simple prior: {*: 2, +: 1, sin: 1}. The package includes much more information than this simple prior, for example conditional priors---a full breakdown of the included metrics is detailed on the Priors section of our documentation. The package was designed to provide equation discovery modelling techniques, such as Symbolic Regression and the Bayesian Machine Scientist, with informed priors; however, the application of this package can extend far beyond this. Package in Research: Hewson et al., 2023 Marinescu, Strittmatter, et al., 2023 Links: Package Documentation Package Repository Autora
I am a developer on the AutoRA Python package project. AutoRA (Automated Research Assistant) is an open-source framework for automating multiple stages of the empirical research process, including model discovery, experimental design, data collection, and documentation for open science. AutoRA implements the Autonomous Empirical Research Paradigm, which involves a dynamic interplay between two artificial agents. The first agent, a theorist, is primarily responsible for constructing computational models by relying on existing data to link experimental conditions to dependent measures. The second agent, an experimentalist, is tasked with designing follow-up experiments that can refine and validate the models generated by the theorist. Together, these agents implement an automated scientific discovery process. To enable closed-loop empirical research, AutoRA interfaces with platforms for automated data collection, such as Prolific or Amazon Mechanical Turk, which enable the efficient acquisition of behavioral data from human participants. Finally, AutoRA is designed to support the automated documentation and dissemination of steps in the empirical research process. Package in Research: Musslick et al., 2023 Hewson et al., 2023 Links: Package Documentation Package Repository |