0.0.6 • Published 2 years ago

@datagrok/bio-signals v0.0.6

Weekly downloads
-
License
-
Repository
github
Last release
2 years ago

Biosignals

BioSignals is a package for the Datagrok platfrom. The goal of the project is to offer an efficient and automated biosignal processing routine. The initial version is based on pyphysio - a python library developed by Andrea Bizzego.

The package reinforces the existing pyhton code with datagroks' visualization and data processing tools. The pipeline itself is designed with scientific community in mind, standartizing and thus facilitating the usual ECG, EEG, EDA, etc. signal processing workflows. The fusion of manual and automated steps is largely enabled by our interactive viewers , scripting capabilities, detector functions, data augmentation, and a curated collection of the scientific methods.

In particular, project's initial goals are:

GoalExample
Automatically read various biosensor file formatsIntegrate with the built-in file share browser
Provide efficient interactive visualizations for raw biosensor data, including domain-specific visualizations"Head view" for EEG
Provide efficient ways for manipulating raw biosensor dataMarking regions, etc
Provide a collection of high-performance DSP algorithmsSee DSP package
Detect type of signals, along with the metadataSampling rate, recorded events
Automatically suggest analyses and pipelines applicable to the current dataset, derive high-level features out of the raw biosensor signal"Extract step count" for the accelerometry data
Visually define pipelinesSimilar to Simulink block diagrams
Allow to build predictive models by integrating previously defined pipelines with theDatagrok's predictive modeling capabilitiesTraining a model to find "bad" quality segments based on the manually annotated data

Currently, the project is in its early stages, and we welcome you to contribute to this repository.

Pyphysio

Pyphysio is a library that contains the implementations of the most important algorithms for the analysis of physiological data. The latter methods are divided into the following categories:

CategoryInputOutputExamples
FiltersSignalFiltered signal of the same typeApply elliptic filter to raw ECG signal
EstimatorsSignalSignal of a different typeGet inter beat intervals (IBI) from ECG signal
SegmentatorsSignalSeries of segmentsCut 24-hour Holter monitor record into 10-minute segments to compute how many arrhythmias occurred over different time intervals
IndicatorsSignalValueCompute sequence of HRV indicators from segmented RR intervals
ToolsSignalArbitrary dataDetects outliers in the IBI signal, compute rising slope of R peaks, estimate the power spectral density (PSD) of the signal

How to add your script

  1. Go to Functions | Scripts | Actions | New Script
  2. Write your script, and test it on files
  3. Set tag #filters, #estimators or #indicators

Now it is available in corresponding app section.

A unique approach to every signal

Signal typeDefinition
ECG (Electrocardiogram)Electrical activity of the heart
EDA (Electro-dermal activity)Variation of the electrical conductance of the skin in response to sweat secretion
Accelerometer signalRate of change of body's velocity
EMG (Electromyography)Electric potential generated by muscle cells when they are electrically or neurologically activated
EEG (Electroencephalogram)Electrical activity of the brain
ABP (Arterial Blood Pressure signal)Pressure of circulating blood against the walls of blood vessels
BVP / PPG (Blood Volume Pulse / Photoplethysmography)Volumetric variations of blood circulation
Respiration

Since various signals require a different combination of filters and information extraction steps, a separate pipeline has to be designed for every input. We plan to first separately recreate the recommended workflows and then combine them into a complete package.

Automation

A substantial part of this project targets improvements to user-friendliness. Our goal is to create a smart environment, which streamlines the pre-processing steps by autonomously selecting and suggesting the most appropriate tools.

Detectors.js

A file containing functions for preliminary data analysis. Once any table is uploaded to Datagrok , this script decides whether the BioSignals package should be added to the 'Algorithms' list. Currently, the proposed mechanism relies on column labels, however its functionality can be extended to draw insights from actual data.

Types of auto-input

By design all the inputs could be split into three sub-types:

  • User input: completely manual (for areas where no inferences from data can be made);
  • Auto suggest: completely automated (input suggestions inferred from data);
  • Auto Limit: automatically limit the options, given previous choices;

The pipeline can then be viewed as a branching decision tree, which offers and/or block certain paths depending on retrieved metadata and the sequence of inputs.

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

3 years ago