Open Source Software

In the course of my research I tend to write large quantities of code, which I often incorporate into toolboxes for public release. 

A few of these open source projects are presented below. 

Please note, as of 2010, this page is not actively maintained.

ECoG NeuroVisualizer

[NOTE: EViz is no longer under active development. The most useful aspects of this toolbox are being incorporated into the SIFT project]

The ECoG Neurovisualizer (EViz) is a beta piece of MATLAB software I developed in 2006-2007 to facilitate visualization and analysis of complex spatio-temporal patterns of information flow in electrocorticographic (ECoG; intracranial EEG) data. I primarily developed it for the use of our ECoG group within the lab of Dr. Robert T. Knight at UC Berkeley. As such, it is somewhat tailored to our particular 64-channel grid setup. EViz was designed around the concept of using information and temporal latency-based clustering to identify functionally-specific regions of interest (ROIs) and then observing information transfer properties between these ROIs. A CNS poster preliminarily outlining this concept is available here and a schematic diagram is detailed in Figure 2 below. Another package of software which I developed (for which the interface is currently still command-line) computes cross-correlations, Mutual Information, Frequency-domain conditional Granger Causality, etc and produces matrices of peak connectivity values, temporal latencies, etc. This is then loaded into EViz for further clustering analysis, statistics, and graphical visualization.


EViz is still a very beta work-in-progress and as yet does not allow GUI access to many of the other visualization and computational/statistical methods I have coded. Currently it is designed to handle Mutual Information and Cross-Correlation. I am currently extending its functionality to include other approaches I'm using (coherence, granger causality, dynamic bayes nets). At some point, I plan to make this entire package accessible as an open-source toolbox for analyzing causal interaction (perhaps linking it to other causal connectivity toolboxes such as A.K. Seth's Causal Connectivity Toolbox (granger causality-based)).


In Figure 1 you will find screenshots of a more or less recent version of EViz. Click on them to expand and view a demonstration of some of the functionality. Due to the fact that the program is currently custom-tailored to our grid setup and preprocessing scripts, EViz is not yet ready for mass download. I will upload a link here when the program has developed further.


You may note that some of the text in the command buttons, etc are clipped. This is due to the way text is differentially rendered in Linux matlab vs. Windows Matlab. All future versions will display well in both Linux/Unix and Windows.

Figure 1.  Screenshots from EViz software



Figure 2.  Schematic of information-based clustering approach to analyzing information flow between cortical regions of interest

Source Information Flow Toolbox (SIFT)

BrainMovie3D Example

Brain Network Dynamics During Error Commission


This is a comprehensive Matlab toolbox for analyzing causality and information flow in electrophysiological data. It consists of a suite of command-line functions with an integrated GUI for easy access to multiple features. The toolbox is fully EEGLAB-compatible and is released as an EEGLAB plugin. 

Methods currently implemented include:

  • preprocessing routines
  • adaptive multivariate autoregessive modeling (granger causality, directed transfer function, multiple and partial coherence, spectra, and many other measures)
  • boostrap/resampling and analytical statistics
    • single-condition (test for absence of information flow)
    • between-condition (test for condition A = condition B)
    • event-related (difference from baseline))
  • network analytics and summary statistics including net information flow between ROIs defined manually or via information-based clustering
  • a suite of programs for interactive visualization of information flow dynamics across time and frequency (with optional 3D visualization in MRI-coregistered source-space).

Download (alpha release)


CleanLine demonstration


Sinusoidal noise can be a prominent artifact in recorded electrophysiological data. This can stem from AC power line fluctuations (e.g. 50/60 Hz line noise + harmonics), power suppliers (e.g. in medical equipment), fluorescent lights, etc. Notch filtering is generally undesirable due to creation of band-holes, and significant distortion of power around the notch frequency, as well as phase distortion at other frequencies and ringing artifacts (Gibbs phenomena) in the time-domain. Blind Source Separation techniques, such as ICA, do not always adequately remove sinusoidal artifacts. Adaptive regression techniques typically require a reference signal, which is not always available. 

CleanLine is an EEGLAB plugin which adaptively estimates and removes sinusoidal artifacts from ICA components or scalp channels using a frequency-domain (multi-taper) regression technique with a Thompson F-statistic for identifying significant sinusoidal artifacts. This approach has been advocated by Partha Mitra and Hemant Bokil (Observed Brain Dynamics, Chapter 7.3.4., 2007) and CleanLine utilizes modified routines from the Mitra Lab's Chronux Toolbox ( Multi-taper regression generally demonstrates excellent performance for sinusoidal artifact removal compared to alterative methods, and may easily be sequentially combined with other methods, such as BSS/ICA for improved cleaning performance.

Matlab Code

ICACLUS algorithm


This program finds an overlapping clustering of time series using my modification of the ICACLUS algorithm by Wu and Yu.  A paper in which I apply this method to intracranial EEG data is available here.



 Copyright (c) 2009 Tim Mullen