BrainWave: a Java based application for functional connectivity and network analysis
BrainWave is an application for the analysis of multivariate neurophysiological data sets, in particular EEG and MEG, although other types of data such as BOLD time series can be studied as well. It was written by Cornelis Jan Stam. The focus of the software is on the analysis of ongoing, resting-state activity, which is analyzed as a series of epochs, with a maximum length of 4096 per epoch, but short epochs can be analyzed as well. Although is not aimed at the analysis of task related experiments, these can be approached with some effort as multiple short epochs or as a block design. BrainWave includes facilities for computing power spectra, several measures of functional connectivity (coherence, phase coherence, imaginary coherence, PLI and synchronization likelihood). Following a basic analysis of functional connectivity, the resulting matrices can be studied with a large variety of graph theoretical measures, based upon unweighted or weighted graphs, using clustering coefficients, path lengths, modularity and graph spectral analysis (eigenvector centrality, spectral radius, spectral gap, eigenratio and algebraic connectivity). The graph spectral analysis in BrainWave is based upon JAMA: A Java Matrix Package by Robert Sedgewick and Kevin Wayne. All results can be viewed in various ways, especially in the case of data obtained with the Neuromag MEG system of Elekta. Imported files should be plain ASCII data, with channels as columns and samples as rows. Results of computations are exported as text files. Almost all analyses can be done in batch mode. BrainWave also contains models of complex networks. The software is Java based, and thus should run on all major operating systems. However, Java and the Jave Runtime Environment has to be installed on your computer. If this is not the case, you can download it for free from the Sun website. BrainWave is the successor of the older application DIGEEGXP, a Windows based package written in Delphi. A useful manual to get started with BrainWave was written by Maria Boersma, and recently updated by Ilse van Straaten.
How to obtain a copy of BrainWave
BrainWave is an application for science, not for profit. You can download the BrainWave version 1.1.6. Active participation in the BrainWave users community is encouraged (see user questions and comments at the bottom of this page). Please let us know if you publish a paper based upon BrainWave.
Changes in last version of BrainWave
-
Version: 1.1.6
- Date: 5–1-2023
- Changes: Color scheme ligt / dark blue.
-
Version: 1.1.2
- Date: 2–1-2023
- Changes: Changes in file selection in batch menu: it is now possible to select files from different directories for processing in a single batch.
-
Version: 0.9.165.57
- Date: 11–12-2022
- Changes: Option to compute kappa ("
/ ) in combination with any measure of functional connectivity. Select "kappa" in batch, in combination with functional connectivity analysis. If the cortex is (close to) critical, kappa of the FC matrix closely resembles kappa of the underlying structural matrix, and is an estimate of the E/I balance.
-
Version: 0.9.152.12.26
- Date: 13–9-2018
- Changes: Implementation of AEC-c, AEC corrected for volume conduction / field spread. Correction subtracts prediction of linear regression from one of the two channels for which AEC is computed. Average of regression in two directions is used. Small correction for existing AEC implemented. Adjustment of FDR procedure: p(corrected) = m/r * p(uncorrected), where m = number of tests, and r is rank of p(uncorrected) from smallest to highest value.
-
Version: 0.9.152.12.5
- Date: 26–4-2018
- Changes: Weighted matrices can be converted by setting “Density” in Analyse menu to value between 0-1; 1 will be original matrix. For A single epoch the result can be generated by clicking Edit, Bin density. In a batch density to conversion to a binary matrix will be done automatically in combination with clustering analysis. Brainnetome coordinates [246 regions] have been added to Show, Power [with many thanks to Tianne Numan for writing this part of the code]. New ASIS model in SIS model, RW.
-
Version: 0.9.152.10.50
- Date: 9–3-2018
- Changes: Error in displaying modules in Show, Map, AAL116 for for epochs with more than 80 channels corrected. [plus many more changes to be described later]
-
Version: 0.9.152.4.1
- Date: 14–2-2016
- Changes: Permutation testing is now based upon FDR and not on single threshold. In Analyse batch, the multiFilter option has been replaced by mPlex. It performs a multiplex analysis on all five frequency bands (see below). The overlay node strength is in “syn” the multiplex participation coefficient in DPLI. Both values are in the output for machine learning as well. The new mPlex results in a single, overlay matrix of the same dimension as the original matrices. It can be combined with any other type of further analysis (MST, or other) in the same way as conventional single frequency band analysis. In Analyse batch an option for horizontal visibility graph degree correlation as a measure of connectivity has been added. Work on new HD Model.
-
Version: 0.9.152.2.17
- Date: 21–11-2015
- Changes: Correction of error in exporting the 25 features for machine learning in batch. Several changes and additions in machine learning module.
-
Version: 0.9.152.2.7
- Date: 3–11-2015
- Changes: In Analyze, Batch a new option “subAv” is added. This allows to average over a number of epochs for each subject before a permutation test is done. Correction for multiple comparisons is still based upon single threshold. In edit and in Batch a new experimental option “multFilter” is added. This option makes 5 copies of the epoch (in higher channels), and filters the five copies in the delta (0.5-4 Hz), theta (4-8 Hz), alpha1 (8-10 Hz), alpha2 (10-13 Hz) and beta band (13.30 Hz). The last channel is corrected automatically (if it was 21, it will now be 105). All channels are set to selected. If a connectivity measure is computed, within as well as between frequency band connectivity is computed, as can be seen in the matrix. If mFilter is chosen in combination with machine learning in batch, the output file for machine learning has the syn values for all new channels as features. This method is still experimental. If mFilter is not selected, the old 25 feature set (see below) is generated. The original number of channels before mFilter is applied should not exceed 100.
-
Version: 0.9.152.1.32
- Date: 8–10-2015
- Changes: Default set of 25 features for machine learning generated in Batch: for delta, theta, alpha1, alpha2, beta, peak frequency: lowest, mean and highest value of all channels; ratio theta/(theta+alpha1+alpha2); synchronization lowest, mean and highest; highest degree, leaf number and Tree hierarchy. Option to save feature file in Machine learning (and add extra features). Apply Random forest: use random forest to classify new data.
-
Version: 0.9.152.1.23
- Date: 7–9-2015
- Changes: Minimum spanning tree analysis can now be combined with phase transfer entropy. MST is based upon magnitude of deviation from 0.5 for all edges; resulting MST is binary, and undirected; allows calculation of the usual measures. New module “Machine Learning” added to Model menu.
-
Version: 0.9.151.7.2
- Date: 15–5-2015
- Changes: Correction of error in display of group averages in Show results. The size of group1 was wrongly determined as N+1; this is now corrected. The error did not influence the computation of the permutation test p-values, or the group maps in Show, power. However, it is important to note that in Analyze, batch, we should always have: start1 < stop1 < start2 < stop2. In Show, power, there is now a new option AAL 116, which display the first 90 AAL ROIs using centroid coordinates.
-
Version: 0.9.151.5
- Date: 1-3-2015
- Changes: In the Batch menu an option for automatic statistical analysis (permutation testing with p-values corrected for multiple tests; uses 10000 iterations per test) is implemented. This can only be used for synchronization measures, one at the time. To use the option click "Groups", and indicate first and last files of the two groups to be compared with "Start1, Stop1, Start2 and Stop2". The output can be viewed in Show, Results, where mean, standard deviation and corrected p-values are displayed. In Show, power, an it is possible to view the maps for Mean1, Mean2, Difference and p-values (blue is p > 0.05; shades of purple and red: p-values < 0.05). The output of PTE can now be found in "syn", instead of DPLI. In Show, modelSpace, red indicates nodes where the syn value > mean + 0.01, and blue mean syn < mean - 0.01. In Test, coupled Rosslers, an option to test PLT is added. The output of Batch, export matrix now has the proper orientation for active / passive channels. If channel X is driving channel Y, cell(X,Y) is > 0.5, and cell(Y,X) < 0.5, where X is column and Y = row number.
-
Version: 0.9.150.6
- Date: 8-2-2015
- Changes: Implementation of phase transfer entropy (PTE) as described by Lobier et al., Neuroimage 2014. For each pair of channels, the ratio PTExy / (PTExy + PTEyx) is computed. This ratio is 0.5 if the coupling is symmetric, smaller than 0.5 if y is driving x, and larger than 0.5 if x is driving y. Raw values can be seen in the synchronization matrix (which is asymmetric; column is driver, row is receiver). Mean values per channel are in dPLI. A dPLI map will show spatial PTE patterns. In Show, model, if 78 channel MEG or model data is used, red indicates nodes with PTE > 0.5 and blue PTE < 0.5. Note that computation of PTE will overwrite results of other synchronization measures, and thus should not be combined in a single batch. There is now a separate option "AAL 78", as a button on the right in the main window, and as a montage in the settings window. This will automatically set gain = 0.25, samplefrequency = 312, downsample = 4, lastchannel = 78. (use "refresh" if the proper options are not shown on opening the Settings window). In the the Test menu there is now an option Coupled Rosslers. This simulates 21 Rossler attractors directionally coupled from back to front. Proper values for the coupling parameter should be low (0 - 0.025) and averaging set at 50-100 for optimal results.
-
Version: 0.9.133.1
- Date: 23-9-2014
- Changes: New montage wCAR where each channels gets a weight such that the mean absolute correlation between all channels is minimized. Source: Hjorth's source derivation, an approximation of the Laplacian. Source only is valid for 21 channel EEG with Brainlab channel order. Mean for dPLI, which used to be the range of all dPLI's per channel, is now "anterior to posterior ration": sum of all dPLI of precentral channels (Fp2, Fp1, F8, F7, F4, F3 and Fz) divided by sum of all dPLI for postcentral channels (T6, T5, P4, P3, O2, O1 and Pz). Menu Test, option “EEGModel”, generates structural matrix for 21 channel EEG to replicate for instance dPLI findings. Menu Model now has form for Kuramoto model. Edit menu: new option "Order (channels) by (peak) frequency from slow to fast. In Kuramoto model: mPCI ("mean phase coupling index"): mPCI = 0.5 cos(localphase-meanphase) + 0.5.
-
Version: 0.9.125
- Date: 9-6-2014
- Changes: In Show, Power, option for 64 channel Biosemi data implemented. StructureMode in Test Menu, and Show menu: generates 100 nodes model with adjustable inter and intrahemispheric connectivity, and anterior to posterior degree increase. Several small changes in SIRS model. Edit, compare Matrix: computes correlation coefficient based upon all cells of current matrix and buffer matrix. Function mindisMatrix: degree preserving rewiring with distance minimization (for Gong matrix).
-
Version: 0.9.117
- Date: 11-9-2013
- Changes: SIRS model can now handle weighted structural matrices as input. Error with adjustment of logscale corrected.
-
Version: 0.9.116
- Date: 8-9-2013
- Changes: Algorithm for computation of PLT has been improved. No more double counting of phase reversals at consecutive time point; skips first and last ten samples to avoid edge artefacts. PLT test has been changed: only two channels, sine wave of 1 Hz (sample frequency has to be set to 512 Hz!). Exact results for PLT can be obtained when (number of phase reversals + 1) is a power of two (up to 32). Second sine is shifted by + or – 40 samples in each episode.
-
Version: 0.9.113
- Date: 31-8-2013
- Changes: mstRef in combination with deselected channels gave too low value. This is now solved.
-
Version: 0.9.111
- Date: 24-8-2013
- Changes: Change in algorithm for computation of BC of MST. The new fast algorithm (version 0.9.86; 27-4-2013) produced incorrect results and is replaced by the older correct version. Now the algorithm also handles deselected channels correctly. The correctness of the algorithm can be checked by computing BC of simple small trees like stars and paths.
-
Version: 0.9.110
- Date: 18-8-2013
- Changes: Correction of MST computation in the case of one or more deselected channels. In Show, Power, correct value for electrode Pz is now displayed. Implementation of SIRS model on networks in Model, SIRS (experimental).
-
Version: 0.9.100
- Date: 17-6-2013
- Changes: Modification of Test, AAL Model. Alpha is now contribution of distance defined as 1 – (normalized distance)^-2. Beta is now normalized product of degrees of both nodes: k1 * k2 / 400. This model gives a better explanation for PLI (and PLT) matrices for alpha < 1 and beta > 0. In Test the option Jump artefact is replaced by PLT test. This can be used to generate copies of the first channel such that a given number of reversals of the phase difference between different channels will occur. The result can be seen in Show, space time dPLI, option dPLI. This option can be used to illustrate the difference between PLI and PLT.
-
Version: 0.9.98
- Date: 30-5-2013
- Changes: Edit, rank matrix converts a weighted matrix to a ranked weighted matrix such that each cell gets a new value (n1/n2)^5. N1 is the number of cells with a value lower than the original cell value, and n2 is the total number of cells. Rank can be used in Batch in combination with all synchronization measures. It is now also possible to copy the (ranked or unranked) matrix to the buffer. When rank is used, the new matrix is compared to the matrix in the buffer and the mean absoute difference is shown in Matrix diff. The old sPLI is replaced by a new measure, the phase lag time (PLT). This is defined as PLT = 1 - exp(-t), where t (in seconds) is the time between two successive zero crossings of the phase difference. It is thus related to the average duration of episodes where one channel is leading / lagging with respect to another channel. Like the PLI it is not sensitive to volume conduction. Edit menu now has MST Explained and MST Unexplained. Selecting these options results in the MST containing only edges that (i) overlap with the content of the MST buffer, or only edges that do not overlap with the content of the buffer.
-
Version: 0.9.93
- Date: 12-5-2013
- Changes: In the Test menu the option AAL Model generates a 78 by 78 matrix that can be filled according to two criteria. Alpha (0-1) represents the contribution of Euclidian distances between AAL ROIs. Beta (0-1; alpha + beta <= 1) represents the weight given to the distance of and edge to a refNode. In the case of alpha = 0 and beta = 1 the MST of the matrix will be a star with refNode at its center. If alpha + beta < 1 the weights will be partially random. For alpha = 0 and beta = 0 a symmetric random matrix is generated, from which a random tree can be constructed. Trees generated with AAL Model can be compared to other trees with MST move to Buffer and MST Diff (see 0.9.92).
-
Version: 0.9.92
- Date: 11-5-2013
- Changes: In the Test menu it is now possible to generate directly the unweighted or distance weighted Gong matrix. It is now possible to store an arbitrary MSt (for instance: the MST computed from the average matrix of a sample of control subjects) in a buffer. This is done by choosing Edit, MST to Buffer. The Buffer can also be cleared (MST Clear Buffer). Each time an MST is computed it is always automatically compared to the MST in the buffer. The fraction of overlapping edges (between 0 and 1) is given in MST Ref. When nothing is stored in the buffer, MST Ref will be 0. With a proper reference MST MST Diff is a general measure that can be used to compare groups of subjects with a reference.
-
Version: 0.9.91
- Date: 9-5-2013
- Changes: Visualization of the minimum spanning tree in Show, Graph embedding has been improved such that edges no longer overlap and the hierarchical structure (starting from an arbitrary root node at the top) can now be seen better. The amplitude envelope correlation (AEC) algorithm as described in Brookes et al., Neuroimage 2011 is now implemented. It computes the amplitude envelope using the Hilbert transform and determines functional connectivity based upon the Pearson correlation coefficient between the channels. The envelope can be visualized directly in the Edit menu by choosing Envelope.
-
Version: 0.9.88
- Date: 5-5-2013
- Changes: Correction of the ASCII input from BrainRT. If the montage in Settings, Dataset is set to BrainRT, an ASCI inputfile with the following order of the first 21 channels (Fp1, Fp2, F3, F4, C3, C4, P3, P4, O1, O2, F7, F8, T3, T4, T5, T6, Fz, Cz, Pz, A1, A2) is converted to a 21 channel epoch with the following order of channels: (Fp2, Fp1, F8, F7, F4, F3, A2, A1, T4, T3, C4, C3, T6, T5, P4, P3, O2, O1, Fz, Cz, Pz). The proper gain (factor 10) is automatically adjusted. The imported data are converted to an average reference based upon all 21 channels.
-
Version: 0.9.87
- Date: 28-4-2013
- Changes: Minor changes in GRM model (delta temp for simulated annealing set at 0.9995)
-
Version: 0.9.86
- Date: 27-4-2013
- Changes: Some minor changes have been made in the MST procedure. Betweenness centrality is now computed with a different, faster algorithm. Numerical values may be slightly different, but the new values are considered to be correct. Three new measures have been added: Teff, mst ASP and mst mean. Teff is a measure between 0 and 1 that indicates how close the diameter, for a given N and leaf number, is to its lowest possible value. It is defined as: 1 - diameter/(N - leaf number + 1). MST ASP is the average shortest path (not normalized) computed over the whole tree. MST mean is the mean weight of all edges included in the MST. In Show, Power, if MST is chosen colour indicates node betweenness (high: red, low: blue). In Test, AAL Matrix it is now possible to generate a matrix of distances (normalized) based upon the Gong matrix. Various changes have been made to Model, Generalized rewiring model. In essence this model now generates trees that can be evolved with a simulated annealing process taking into account the influence of Euclidian distance (Pconnect) and path length (Pdisconnect). The influence of different model parameters on tree measures can be explored automatically with run GRM and results_GRM (a small * indicates the cell with the highest value). In addition, the model can be compared with the MST of a reference network, either in terms of overlap of the MST (compare AAL), or in terms of a Dissimilarity measure (compare MST). Finally, in Settings, Dataset, Headersize now has a default value of 0.
-
Version: 0.9.76
- Date: 27-1-2013
- Changes: Minor changes in import of BrainRT ASCI files. T1 and T2 should be excluded in the import file. The imported data (recorded against Fz) are now automatically re-referenced to an average reference including all active channels.
-
Version: 0.9.75
- Date: 24-1-2013
- Changes: If the montage in Settings, Dataset is set to BrainRT, an ASCI inputfile with the following order of channels (Fp1, Fp2, F3, F4, C3, C4, P3, P4, O1, O2, F7, F8, T3, T4, T5, T6, Fz, Cz, Pz) is converted to a 21 channel epoch with the following order of channels: (Fp2, Fp1, F8, F7, F4, F3, A2, A1, T4, T3, C4, C3, T6, T5, P4, P3, O2, O1, Fz, Cz, Pz).
-
Version: 0.9.74
- Date: 13-1-2013
- Changes: The File menu now has to options for importing and exporting square matrix data (with cell values between 0 and 1; floats allowed). If a matrix is imported the content is placed in the matrix that is used for computations in BrainWave and can be visualized with Show, Matrix. The content of this same matrix is exported to a textfile if the Export matrix option is used. With the Import matrix option it is now possible to perform all kinds of network analysis on data for different sources, such as structural and functional MRI. It is no longer necessary to import the data in the form of a multchannel timeseries and to generate the matrix by performing some type of synchronization analysis on the data. One limitation is that this approach cannot be performed in batch mode.
-
Version: 0.9.72
- Date: 12-8-2012
- Changes: Matrix of human DTI data based upon Gong et al. 2009 corrected based upon original data provided by Gong. (six edges changed) In output of Batch accuracy of clustering coefficient (for weighted and unweighted networks) is now four digits.
-
Version: 0.9.70
- Date: 20-5-2012
- Changes: Small improvement in Show, Degree distribution (adjustment of log scale). Small changes in Generalized rewiring model
-
Version: 0.9.69
- Date: 25-5-2012
- Changes: In Show, Matrix, and Show, Power, it is now possible to view the minimum spanning tree, once it has been computed in Analyze, minimum spanning tree. Show, Degree distribution now has extended possibilities to view the smoothed degree distribution (normal or double logarithmic) once it has been computed with Analyze, unweighted graph. A regression line can be fitted to the whole distribution, or to a part of the distribution between a red startcursor (left mouse button) and a blue stopcursor (right mouse button). Intercept and slope of the regression line are shown in the plot.
-
Version: 0.9.61
- Date: 25-4-2012
- Changes: In Model, Centrifugal, new generalized rewiring model (GRM) added.
-
Version: 0.9.58
- Date: 25-2-2012
- Changes: In Show, space time dPLI, it is now also possible to view space time PLI. In Analyze, Batch, the confusing Average data is replaced by Average signals. In the case of two signals with a phase difference of 0 dPLI now gets the correct value of 0.5.
-
Version: 0.9.57
- Date: 25-1-2012
- Changes: Two cursors can now be set: for left click a blue one and for right click a red one. If the inputdata is a BrainLab 4 21 channel ASCII file the proper channel names are shown.
-
Version: 0.9.56
- Date: 24-1-2012
- Changes: In Settings, Dataset it is now possible to choose different montages (Average, LocalAverage, A2A1 and Cz) if the input file is a 21 channel BrainLab 4 file. The assumed order of channels in the inputfile is: Fp2,Fp1,F8,F7,F4,F3,A2,A1,T4,T3,C4,C3,T6,T5,P4,P3,O2,O1,Fc,Cz,Pz. Default does not change the montage of the input data. Average uses all the selected channels to compute the average reference (this also applies when the number of input channels is not 21).
-
Version: 0.9.55
- Date: 23-1-2012
- Changes: A blue cursor can be positioned by a single mouseclick in the the main window. The amplitude map at the cursor position can be viewed in Show, Power, Amplitude. The Show, Power menu now also has an option to view a map of the peak frequency in the 4-13 Hz band.
-
Version: 0.9.54
- Date: 8-1-2012
- Changes: A new option, space time dPLI, has been added to the Show menu. This option allows to view the time course of either the phases or the dPLI for all channels. The length of the time window can be decreased to view more details.
-
Version: 0.9.53
- Date: 6-1-2012
- Changes: Further improvement have been made in the Brainnet model: it is now possible to stimulate the left and right calcarine area (AAL 25 and 64) with frequencies ranging from 1 - 100 Hz. The connections matrix can be exported to the main program; alternatively the matrix of the main program can be imported into BrainNet for modeling purposes. In Analyze, Batch, an error in the output for dPLI is corrected (filename was missing). For each batch run the results for multichannel measures are averaged automatically; the averages are shown in Show, Results afterwards. In Show, Power, the corresponding maps can be viewed. It is also possible by selecting the Average data checkbox to average the time series. The results is stored in a file Average_[name of results outputfile].txt. dPLI can now be performed for an individual channel. dPLILead computers the dPLI from a reference channel to all other channels when the reference channel is phase leading; dPLILag does the same for the case when the reference channel is phase lagging. The results can be viewed in Show, Power, after choosing the appropriate map.
-
Version: 0.9.46
- Date: 28-12-2011
- Changes: The model based upon 78 AAL ROIs in BrainNet can now viewed in transversal, sagittal and coronal projections in Show, Power, Model space. Colors indicate dPLI if computed. For dPLI > o.55 the nodes are red; for dPLI the nodes are blue; otherwise they are black. Numbers indicate channel and ROI number of the model.
-
Version: 0.9.43
- Date: 18-12-2011
- Changes: The result of computing a visibility graph can now be viewed directly in Show, Matrix by selecting the "Visibility Graph" checkbox. When de dPLI is computed the value in the first "mean" column now indicates the range of the dPLI values for all selected channels (in a similar way as for the ECM).
-
Version: 0.9.42
- Date: 13-12-2011
- Changes: The dPLI (directed phase lag index) is a measure of directional phase coupling between " time series derived from the PLI. The dPLI for a channel is the average probability that the phase of that channel is leading with respect to the phase of all other channels. Therefore, the dPLI is 0.5 if there is no consistent phase leading or lagging. A dPLI < 0.5 indicates a channel that is lagging compared to other channels and a dPLI > 0.5 a channel that is leading in phase compared to other channels (with phase mod pi). Note that a consistent phase lagging or leading is not proof of causal interaction. Computation of dPLI is done automatically when the PLI is computed. A map of dPLI can be viewed in Show, Power.
-
Version: 0.9.41
- Date: 11-12-2011
- Changes: Visibility graph can now be computed either for a single channel or for all channels. The algorithm is based upon Lacasa et al., PNAS 2008; 105: 4972-4975. If the epoch length exceeds 512 samples the time series is downsampled to fit a matrix with maximum size of 512. The results can be viewed in Show, Matrix. To view the whole matrix, adjust LastChannel in Settings, Dataset first. The GIC (graph index complexity) can now be computed. It is based upon Kim and Wilhelm, Physica A 2008; 387: 2637-2652. Computation of GIC is included in graph spectral analysis. GIC is also computed for each individual channel in the context of visibility graph analysis. A map of GIC can be viewed in Show, Power. Please note that computation of the visibility graph for all channels is very time consuming; this is due to the fact that for each channel a matrix of size up to 512 is analyzed.
-
Version: 0.9.38
- Date: 30-11-2011
- Changes: Matteo Demuru and Matteo Fraschini, Computer Engineering Assistant Professor, University of Cagliari, Department of Electrical and Electronic Engineering (DIEE), pointed out that the computation of the weighted shortest path length in BrainWave might not always retrieve the path with the lowest possible weight. To deal with this problem, the procedure for computing the shortest path in weighted networks is now based upon the classical algorithm of Edsger Dijkstra (1959). This new algorithm has been tested by Matteo Fraschini, and seems to produce reliable results. It has been implemented in version 0.9.38. A description of the algorithm can be found in the invaluable book of Maarten van Steen "Graph theory and complex networks", on page 66-69. Please note (i) disconnected vertices are no longer included in the analysis; (ii) the Lw is now no longer based on a harmonic mean, but on a straightforward arithmetic mean; (iii) unfortunately, the algorithm is much slower that the old one. However, since Dijkstra's algorithm is that standard this should be preferred. Again, it should be emphasized that BrainWave is research software, and contains possible errors. Only with help of critical and attentive users is it possible to improve the software (it will never be perfect; but then: nothing is).
-
Version: 0.9.37
- Date: 26-11-2011
- Changes: In batch processing it is now possible to export the absolute power spectra, averaged over all selected channels per epoch, by selecting the export spectra selection box on the lower left. The power spectra consist of the first 1024 values of the spectrum (the full length of 2048 is not used since it seems this cannot be handled by Excel). Frequency resolution is 1/epoch duration in seconds. Power values are absolute divided by a factor of 1000. The x values can be converted to hertz by dividing the x value by epoch duration in seconds. The name of the export file is Spectrum_***, where *** stands for the name of the general results output file.
-
Version: 0.9.10
- Date: 7-8-2011
- Changes: A new option called Graph embedding has been added to the show menu. With Graph embedding it is possible to view graph data based upon the correlation matrix produced by any type of connectivity analysis in BrainWave in different ways. The three options currently available are a circle graph, a ranked graph and a spring embedded graph. In all cases the threshold for constructing the graph can be changed from 0 to 1. In the case of the ranked embedding the reference vertex can be chosen; this reference vertex is shown on the top. Vertices in lower levels correspond to those that can be reached from the reference vertex in one, two etc. steps. Spring embedding displays the graph such that connected vertices will be closer, whereas disconnected vertices will repel each other; by changing the threshold the configuration of the spring embedding also changes. Background information on these different types of graph embedding can be found in chapter 2.4 of "Graph theory and complex networks".
-
Version: 0.9.08
- Date: 19-7-2011
- Changes: Median frequency has been replaced by peak frequency in the range from 4 to 13 Hz. Dynamic range of powerspectrum has been increased by factor 10.
-
Version: 0.9.06
- Date: 14-7-2011
- Changes: Lw was not exactly the mean of the Lw of the individual channels. This should now be correct. There is a suggestion that gamma is not always Cr / Cr-r. I have not been able to reproduce this error.
-
Version: 0.9.05
- Date: 12-7-2011
- Changes: The FFT procedure now computes the median frequency (frequency such that 50% of the total power in the spectrum between 0.5 Hz and 48 Hz is below the peak frequency) for each channel separately, and the average of all median frequencies in the first column.
-
Version: 0.9.04
- Date: 3-7-2011
- Changes: The largest number that can be used for “Start epoch” and “End epoch” in Analyze, Batch has been increased from 100 to 1000. The outputfile of the Batch analysis now also gives the absolute (total) power over all bands. The absolute power per band (and per channel) can be computed by multiplying the relative bandpower with the total power. In the sPLI method the bias correction is no longer used. Its output is now the PLI, where all PLI values that do not survive a FDR correction with p= 0.01 are set to zero.
-
Version: 0.9.02
- Date: 29-5-2011
- Changes: The accuracy of effective graph resistance RG is now given in one decimal instead of three since the large numbers in datasets with large numbers of channels seemed to produce errors especially with batch processing.
-
Version: 0.9.01
- Date: 22-5-2011
- Changes: New button “MEG-21” added to panel on the right. Sets samplefrequency to 313 Hz and lastchannel to 21. Changes can be viewed in Settings menu, after pressing “Refresh” button. The names of the channels correspond to those of the 10-20 system. The window showing the powerspectrum has been restyled and improved. The powerspectrum of channel 1 is now directly visible on opening the window. It is easier to adjust the X and the Y scale. It is possible to smooth the spectrum. Spectra of two arbitrary channels can be superimposed (the spectrum of channel A is shown in black; channel B in blue). By clicking in the spectrum the exact frequency of a peak can be measures. The result is shown in the right upper part of the spectrum. A new measure RG (effective Graph Resistance) has been added to the graph spectral analysis. The measure is based upon formula 7.23 in “Graph Spectra for Complex Networks) by Piet Van Mieghem, Cambridge University Press, 2011.
The BrainWave users community
BrainWave is neither perfect nor finished. For further improvement feedback and suggestions from users is invaluable. For convenience of the user community, use comments are shown below, in reverse temporal order. If you have a problem or a question, please have a look at previous users comments below.
-
Date: 19-6-2013
- User: Ilse van Straaten
- Comment: In the help-function, section ‘montage’, there seems to be an inconsistency: The list of electrodes is lacking electrodes C4 and C3.
- Reply: This omission has been fixed in version 0.9.101. Also, Fc has been replaced by Fz.
-
Date: 14-7-2012
- User: Edwin van Dellen / Arjan Hillebrand and others
- Comment: Are there any pitfalls for downsampling MEG data before you do connectivity analysis in Brainwave?
- Reply: When downsampling, you should realise that the end result, i.e. the downsampled data, should fulfil the Nyquist sampling theorem. This means that the largest frequency that is present in your data should be at least half of the sampling frequency (in practice, one often uses at least 1/3 of the sampling frequency), otherwise you will observe aliasing effects in your data. This is why a low pass filter is used (410Hz for the Elekta system) when recording the data (1250Hz sampling frequency for the Elekta system). As a consequence, if you downsample the Elekta data by a factor 4, then the sampling frequency becomes effectively 312.5Hz. The data should therefore not contain any signal at frequencies larger than ~100Hz. We know that if we don’t do anything before downsampling, that this is not the case, since the head-localisation coils produce a signal at approximately 300Hz. Therefore, be sure to filter your data before downsampling. When analyzing data in Brainwave that is first projected in source space using the beamformer solution of Hillebrand et al., 2012, data is already filtered between 0.5 – 48 Hz. This data can therefore safely be downsampled by a factor of 4. Note that when you analyse Elelkta sensor-level data, and you want to downsample, that you should filter the data before loading it into Brainwave.
-
Date: 14-7-2012
- User: Edwin van Dellen / Arjan Hillebrand and others
- Comment: Can I use non-integer sampling frequencies with Brainwave?
- Reply: Brainwave expects the sampling frequency to be an integer. If you supply a non-integer sampling frequency in the Settings menu of Brainwave, then you will get erroneous results.
-
Date: 14-7-2012
- User: Edwin van Dellen / Arjan Hillebrand and others
- Comment: How should I adjust the Brainwave settings when downsampling?
- Reply: You should be aware that the Settings in Brainwave should be changed when downsampling data. Below is an example for data that is recorded with a sampling frequency of 1250Hz. The data is downsampled by a factor of 4. Note that the sampling frequency has been adjust to 313Hz (=1250/4, the rounded to an integer). You can check that this is correct by, for example, examining where the line-noise occurs in the powerspectrum, i.e. the line-noise should occur at 50Hz. Similarly, one should check that the Epoch length is still correct fro the downsampled data (a single epoch should still fill the whole screen after downsampling).
-
Date: 14-7-2012
- User: Edwin van Dellen / Arjan Hillebrand and others
- Comment: Why do I get different PLI values for downsampled data when compared to my original data?
- Reply: The phase difference between two coupled oscillators may change direction over time, which may influence results as is demonstrated below. It is therefore important to only compare data between groups or subjects that were computed with the same epoch length (and sampling frequency). In general, one might expect that the PLI values that are computed for longer epochs are more stable than for shorter epochs, but may also discard more interactions.
-
Date: 16-6-2011
- User: Brigitta Tóth
- Comment: Can I compute network measures and export the adjacency matrices for two connectivity measures in a single batch analysis?
- Reply: You can only use one connectivity measure at a time in a batch analysis. The network analysis and exported matrix will be based on the last connectivity measure that is selected in the batch setup.
-
Date: 16-6-2011
- User: Brigitta Tóth
- Comment: How is the “auto degree” computed in the Graph Settings?
- Reply: This option is not yet active. It was intended to determine in an automatic way the threshold for unweighted graphs. Currently for unweighted graphs the desired degree has to be chosen by the user.
-
Date: 16-6-2011
- User: Brigitta Tóth
- Comment: In the output file, what is the difference between Cluster_no and No_Clusters?
- Reply: Cluster_no is the index or arbitrary "name" for the cluster to which a node belongs. So, let’s say there are 3 clusters. If the Cluster_no is 2 for a node, then this node belongs to Cluster 2. No_Clusters is the total number of clusters that are found (so 3 in the above example).
-
Date: 16-6-2011
- User: Brigitta Tóth
- Comment: What are the definitions that are used in BrainWave for Zi and Modularity?
- Reply: Zi measures how well a node is connected within its module (i.e. this measure can be used to distinguish a provincial hub from a connector hub). It is computed as a Z score of the degree within a module. Modularity, Q, is based on the work by Newman and colleagues. The optimum modularity is found using a simulated annealing approach.
-
Date: 26-5-2011
- User: Willem de Haan
- Comment: A SL batch on a Macbook crashed for unclear reasons, while the same batch worked fine on a Windows PC.
- Reply: This is a new problem as far as I know. The SL algorithm has not been changed, so that is an unlikely cause. It could be due to some specific problem with the Macbook. Apparently many "threads" were running at the same time, and that might have caused memory problems? If there are any other users with the same problem, please send a comment so we can try to track down the cause of the problem.
-
Date: 26-5-2011
- User: Martin Hardmeier
- Comment: have had a look into sPLI in the PRESTO-data: In delta, theta, lower alpha, and beta range sPLI behaved quite similar as PLI, but showed a much bigger SD; In the upper alpha sPLI showed lower mean for MS, whereas SL and PLI had higher means; additionally there was a trend towards a significant difference in sPLI; In the gamma band, sPLI had a much smaller SD compared to PLI. Significant differences between groups were only detected by SL.
- Reply: These are the first observations on the performance of sPLI in real (MEG) data. Apparently the news is not good: the deletion of nonsignificant PLI values seems to be associated with a much worse signal-to-noise ration, except in the gamma band. Possibly it is especially the bias correction (based upon the filter settings) that is responsible. That might explain why the problem is not so big with the gamma band. It would be helpful to know the experience of other users. If the problem is systematic, and not limited to one dataset, it might be an option to delete the filter-based bias correction from sPLI and leave only the FDR correction.
-
Date: 25-5-2011
- User: Maria Boersma
- Comment: Is it possible to compute synchronization likelihood for very short time series of 100 to 200 samples, like BOLD time series in fMRI experiments?
- Reply: Yes this is possible but it does require some special adjustments. A nice illustration how it can be done is given in the paper by Ernesto Sanz Arigita et al. In BrainWave go to "Settings" and then to "SL". next deselect the "auto reconstruct" checkbox. Now you are free to choose all parameter settings yourself, but this does require some fundamental understanding of the fundamentals of SL. For time series of short lengths (which have to be powers of two in BrainWave) a workable strategy is as follows: (i) set lag = 1; (ii) choose a small number, typically < 10, for the embedding dimension; (iii) set the Theiler correction equal to the product of lag and embedding dimension; (iv) choose 0.05 for Pref; (v) set speed = 1; (vi) set window equal to the length of your time series; (vii) finally, press "Save settings". This approach should produce reasonable results for SL of short time series. It may be worthwhile to test out different values of the embedding dimension and perhaps Pref to find out which works best.
-
Date: 24-5-2011
- User: Martin Hardmeier
- Comment: As I got from our discussion, nodal ECM-values as calculated by Brainwave are relative for a given network (is it the same formula as used by Lohmann et al?). To compare the topography of ECM-changes at a sensor level between subjects, relative values pose problems. So, is there a way to normalize the nodal ECM? As you surely know, Ruhnau proposed normalization with the Euclidean norm, but I don’t know, whether this is appropriate in our context.
- Reply: I do not know the Ruhnau proposal. I implemented basically the formula of Lohmann et al, that seemed to be alright for comparing MRI data. I am not sure I really understand the problem; you can average for instance relative power over subjects and conditions? Why would the same not be possible for ECM? The normalized ECM is just an index (between 0 and 1) of the "relative" importance of the node / channel. Isn't that what you want to know?
-
Date: 7-5-2011
- User: Martin Hardmeier
- Comment: Would it be possible to make two little changes in the naming in the output file: Cluster no to Cluster_no and No Clusters to No_Clusters? Then the output can more easily be read in other programs (f.ex. R) (now one has to replace it before reading).
- Reply: This has been changed now in version 0.9.00
-
Date: 3-5-2011
- User: Alle Meije Wink
- Comment: Is it possible to import directly matrix data?
- Reply: Sorry, this is not yet possible. Imported data have to be time series. From them of course you can compute the matrices.
-
Date: 20-4-2011
- User: Hennie Evers
- Comment: There is no option in BrainWave to go directly to a certain page in a large datafile; this is a nuisance when you have to select large numbers of epochs in large datasets.
- Reply: This is indeed missing right now (it was a feature in DIGEEGXP); should be added in a future release. (This option has now been added in version 0.8.95)
-
Date: 14-4-2011
- User: Sifis Micheloyannis
- Comment: I open the program. I select Settings, Dataset, Last channel 248, Select all, Save settings. I see all the channels. I move with the + or -to deselect for example channel 8 38 etc. After the channel 99, I do not see the mumber of the channels.
- Reply: This is indeed an error in the settings menu. It is still possible to select or deselect channels with channelnumbers>99 (you will see them turn red or black in the main screen) but you can't see what the channel number is. You could also directly click on the channel in the main screen, but this may be suboptimal if you have very large numbers of channels like with MEG. This problem will have to be fixed. (The problem is solved in version 0.8.95)
For comments and suggestions: send an e-mail