Wiki

Clone wiki

ieeg / UploadPipeline

Introduction

To process data in a pipeline, we have a simple data processing daemon that can be run its own EC2 instance. The main program is SnapshotProcessorDaemon in ieeg-core, edu.upenn.cis.db.habitat.processing.

Details

Command-line arguments:

  SnapshotProcessorDaemon {userid} {password} {server URL} {annotation threshold} {snapshot id1} [snapshot id2] ...

Time Series Workflow Steps

Currently the processor daemon is strictly set up to do the Echauz Line Length algorithm. However, it can handle an arbitrary number of SignalProcessingSteps over the data.

Here we extend the basic ITimeSeries interface (which handles time series data) to AnnotatedTimeSeries (which is time series data plus a list of annotations).

We define two main interfaces for stringing together time series processing:

  • Signal processing algorithms (!ISignalProcessingAlgorithm, SignalProcesingAlgorithm) that take ITimeSeries and return AnnotatedTimeSeries
    • SignalAnnotators add annotations (and called with JSON parameter configurations). The set of SignalAnnotators is extensible via plugins. They are constructed through a SignalProcessingFactory by name, and new annotators can be added to processors.properties.
    • GapDetector is a simple module that annotates gaps
    • LineLengthEchauz takes Javier Echauz' line length code and annotates possible HFOs
    • SignalTranscoders change the time series data
    • All TimeSeriesFilters mentioned in DevPlatform#Filter_development are SignalTranscoders
  • Signal processing steps that can be composed into a workflow via SignalProcessingStep (which includes a step name, i.e., a SignalProcessingAlgorithm, plus parameters in JSON and a next step)

Updated