If you are interested in helping to improve Biosig, but do not know where to start, here is a list of ideas. Get in contact with the mentor of each project idea.
A number Biosignal data formats in the area of ECG are XML-based, e.g. HL7aECG, IHE, FDA-XML, etc. A set of presumingly valid HL7aECG formatted files are currently not supported, and adapting the code base is cumbersome. Part of the issue might be the use of tinyxml for parsing the files. However, as tinyxml is rather old and not supported anymore, the code shoud be replaced with a more modern XML parser. The idea is to replace tinyxml with more robust xml-parser (e.g. tinyxml2, or similar).
Expected outcome: More variations of XML-based files can be more easily supported, and a certain type of errors with invalid XML can be better captured.
Skills: C/C++, XML
Mentor: Alois Schlögl
Difficulty: medium
Last update: 2022-07-01
SCP-ECG is one of the view official ISO standards for ECG data (ISO 11073-91064/EN91064). Currently, the support in Biosig for SCP-ECG is incomplete, it supports only the mandatory sections (demographic information, meta information, sampling values). The optional sections, about extracted ECG parametes are not supported yet.
Expected outcome: * replace scp-decode() with a more modern code base * support reading additional sections of SCP-ECG standard
Skills: C/C++, ISO 11073-91064/EN91064 standards
Mentor: Alois Schlögl
Difficulty: medium
Last update: 2022-07-01
Biosig supports reading of over 50 data formats, and writing of several formats through a common API, through libbiosig which is written in C/C++. The internal representation is in binary from, and resembles the structure of a GDF file, which is also binary format. Commandline tools for converting this binary to and from an text-based representation would be very useful, but only available to a limited extend (e.g. save2gdf, biosig_fhir).
Expected outcome: two command line tools (biosigdump and biosigimport) for converting to and from an text-based representation. The round-trip conversion from GDF to Text to GDF should be lossless.
Required skills: C/C++, GDF specification
Mentor: Alois Schlögl
Difficulty: easy
Last update: 2022-07-01
Biosig supports reading of over 50 data formats, the source of the data can not always be trusted therefore, it would be important that libbiosig is correctly handling all possible input data, that possible bugs are identified, in order to prevent possible security exploits. The idea would be to fuzz test biosig.
Expected outcome: run fuzztests for all supported data formats, and identify those code sections that have unacceptable bugs.
Required skills: C/C++, fuzzing
Mentor: Alois Schlögl
Difficulty: medium
Last update: 2022-07-01
Biosig supports reading of over 50 data formats, and writing of several formats through a common API, through libbiosig which is written in C/C++. Bindings to some higher level languages, like Matlab, Octave, Python, Mathematica, R and Java are available to some extend, but are either limited in functionality (e.g. only read support), or limited w.r.t. to supported operating systems. or the lack of support for other languages including Perl, PHP, etc.
Expected outcome: Any improvement w.r.t. to supported languages, platform, functionality,
Required skills: C/C++, target language,
Mentor: Alois Schlögl
Difficulty: medium
Last update: 2022-07-01
Currently, the support in Biosig for these data formats is very limited. Only the file type is identified. So currently it can not be used for reading the data, although there is interest from several independent parties.
Trying to contact the vendor and asking for the format specification was not successful - there was no response at all. Therefore, one must assume that the vendor does not have any interest in the support of their data format by Biosig. So the alternative is trying to reverse engineer the data format. Since these data formats come from the same vendor, it can be assumed that certain data structures are similar, which might be useful in the effort to reverse engineer these formats. I'd guess that the effort is more than one person can achieve, and it might require a team of people to address the various aspects of this project.
If you are interested, you can help with the following:
Expected outcome: support of reading these data formats with all tools that use libbiosig.
Useful skills: C/C++, SQlite, knowledge on encoding/decoding of binary data, hexdump, sqlite3, Access to an EEG system from that vendor
Mentor: Alois Schlögl
Difficulty: High, will most likely require a team effort
Last update: 2022-08-23
The international standards for ECG data formats (e.g. HL7aECG, SCP-ECG, etc.) define a variaty of ECG-derived parameters, that are considered important for in the field of ECG diagnostics. Some algorithms like two QRS detection methods, and some HRV analysis is already implemented in Matlab. However, many more parameters, most prominently the start, end, and peak of the P and T wave, and the parameters of the QRS complex are important parameters.
Last update: 2022-07-01