Concepts and general description
BioSigPlot aims to give a friendly-user interface, in order that various physicians can analyze signals in the same way as they do with the softwares providing by the devices manufactuers. For this purpose some specific classes can be created for each kind of signal which requires specific disposition and/or tools. For now, there are two specilalized classes: - BioSigPlotEEG for EEG - BioSigPlotFHR for FHR. Those two classes inherit from the main class BioSigPlot which can display any kind of signals even if the disposition may have some small differences compared to specific manufacturer softwares.
As BioSigPlot aims to help researcher to visualize the results of various possible signal processing, it is then useful to be able to plot several datasets on the same time, one containing the original signal, and the other containing the result of the signal processing. BioSigPlot have then integrated this general feature which ease the plot in various situation. It has to be noticed that all the datasets must have the same duration and the same sampling rate, but it’s not compulsory that they have the same channels. If the channels are the same, the datasets are called ChanLink. The behavior of the program is then little different: the modification of the properties of one dataset modify also those properties of other datasets. Here are some examples of visualization of multi-channel signal features: -(1)EEG channels and ICA sources (ChanLink=false) -(2)EEG before filtering and after filtering (ChanLink=true) -(3)EEG with various Montage (ChanLink=false) -(4)EEG with various Reference (ChanLink=true) -(5)EEG channels and indices computed on each period of time of each channel (ChanLink=true) -(6)1 to 9 realisation of ERPs (ChanLink=true) -(7)EEG + ECG or other signals like BCI stimulation (ChanLink=false) -(8)CardioTocoMeter signals (ChanLink=false) -(9)X and Y (and Z) signals for posturography (ChanLink=false) -(10)Various signals which are monitored in reanimation (ChanLink=false) Depending on the problem, there is the choice to plot them on various modes: - SuperImposed : Each datasets are on different Colors one in front of the others - Alternated : For each channels the various dataset are plotted one after others - Horizontal : Each Dataset are plotted on a specified Axes which are on a put one after other Horizontaly - Vertical : Each Dataset are plotted on a specified Axes which are on a put one after other Verticaly On some of those application, the multi-dataset is not obvious because it is possible to put all the channel on the same dataset. One of the advantage of the multidataset feature is that, you have the possibility to choose which channels will be plotted on which axes. Then, you can set the scale on each axes independantly. Each dataset can be put on different colors depending of the Data view mode
Processing inside the current window
One of the concepts of BioSigPlot is that the preprocessing of data is done directly in the current Window. Consequently, you don’t have to wait a pre-process of all the data before viewing them, and you can test the different pre-process parameters without restarting the program. The two pre-processing features for now are filtering (High pass, low pass and Stop Band) and Montages (e.g. raw, mean reference, longitudinal, transverse). The filtering is common on each dataset but the Montages can be different depending on the dataset. It can be noticed that two kinds of filters can be set : - 1st order Butterworth filter (2nd for band stop), it’s often this type of filter which is implemented on reading Software of manufacturer devices - 4th order Butterworth Filter (8 for stop band) with Forward-Backward process (Better filters). The forward-backward filter function ’filtfilt’, implemented in Matlab has been redevelopped by the author on C++ and it is now four time faster, thus making the navigation fluent.
BioSigPlot control and communication between windows
The programming of BioSigPlot as a class enables researcher to control it from other programs. All the actions which are done graphically can be done with command line by setting a one or several properties. On top of that, when a property is modified, an event notification is sent and can be listened. For example, it is possible to define two instances of BioSigPlot object with different data but when an action is carried out in the first instance, it is also carried out on the second instance. This kind of communication is used to synchronize the BioSigPlot window with Video or Events. When the Event Window is opened and an event is clicked, BioSigPlot goes directly to the time of the Event. Furthermore, when the Video Window is opened a video cursor is plotted in the BioSigPlot window and when scrolling on the time of BioSigPlot, the video time is also changed. We have developped also a function to enable the user to select continued or discontinued period of time on the recording. The selection period can then be accessed by the ”Selection” property. It can be usefull for example when you have to select a training period for algorithm or you want to save some period of interrest on a database.
Configuration files and command observer
To help knowing what property do what action, you can use the command observer to see the various commands the interface has done. This feature is a kind of macro recorder like in Word Or Excel. Consequently, it is not required to read the help carefully to understand what kind of argument must be put on keys. On top of that, due to the variety of signals that can be plotted with this interface, there is a possibility to record various default parameter set for each type of signals. Those default parameters are stored on CFG file and this latter can be open with the constructor or with ’set’ methods. There is also the ConfigWindow which enable to edit the properties, load/save CFG File, and import/export the properties to the current BioSigPlot window.
BioSigPlot is a generic tool to plot all biomedical signals, but one of the main application is EEG signals. This project does not aim to open or save data files and to do a process on the entire recording (e.g. compute the ICA on the entire recording). In this purpose, there is the EEGlab project which is perfectly suited for that. EEGLab permits easily to add new plug-in, and consequently BioSigPlot can be launched from EEGlab. Then, it permits to plot both the EEG and the ICA sources in the same window and it adds some new features compared to the original ’eegplot’ function of EEGLab even if some of the functions are not yet developed.
In order to enable physician and engineers to analyze signals efficiently, several features have been developed on top of the previously cited: - The auto time scroll which is very useful to examine very long duration recordings. - Zoom on some specific channels - Possibility to show grid to better see the time unit - Possibility to change the scales of signals - Possibility to change signal colors - Possibility to view the signal on full screen by plotting the channels names and the time inside the graph, or to put them outside in order to not bother the signal visualization. - A line measurer which show the synchronization of signals and their value at a given time. - The possibility to export as PDF for eventual printing - A complete Help and a ”How to Start” video