Skip to content

Spike feature processor - #6

Open
fkloosterman wants to merge 22 commits into
masterfrom
add_decoding_feature_processor
Open

Spike feature processor#6
fkloosterman wants to merge 22 commits into
masterfrom
add_decoding_feature_processor

Conversation

@fkloosterman

@fkloosterman fkloosterman commented Nov 7, 2025

Copy link
Copy Markdown
Member

Migrated from Bitbucket


Compute features :

  • hardware timestamps [x] ----> validated by test on raw data
  • depth [x] ----> validated by test on raw data
  • amplitude [x] ----> validated by test on raw data

Comments:

  • Do not use spikedata

Ready to be merged ! Wait for this PR to be merged first. falcon-eyrie/falcon-fklab-extensions#75

@fkloosterman

Copy link
Copy Markdown
Member Author

Comment by @fkloosterman on September 06, 2021 at 12:30 PM UTC:

@MarineChap

In my mind, the spike features are computed in a separate processor. The decoder then receives spike feature data packets (size: nspikes x nfeatures). The user would configure the decoder to use a certain subset of the features for decoding. This feature subset needs to be consistent with the features used to build the encoding model.

In our previous implementation, the decoder accumulated spike features until the configurable decoding time window of duration T has passed. Since the incoming spikes are detected in a fixed time window of duration Tspike, what happened is that the decoder ingested N spike feature packets for every decoding result on the output port. This requires that Tspike is an integer multiple of T.

@fkloosterman

Copy link
Copy Markdown
Member Author

Comment by @MarineChap on September 07, 2021 at 10:29 AM UTC:

@fkloosterman
yes I am on the same idea as you. Here we are in the spike feature processor before the decoding processors.

The processor will reformat to have a feature output + accumulate the spikes before sending it to the decoding processors.

But now about these different features per-se, right now in input we have spike data :

  • timestamps of the detected spikes
  • amplitude of the detected spikes
  • channel of the detected spikes

We are missing these features:

  • spike angle
  • spike width

Two possibilities :

  • we find a way to have the full spike signal in this processor and compute it here
  • or we compute these two features in the spikedata as the same time as the amplitude

what do you think is the better ?

@fkloosterman

Copy link
Copy Markdown
Member Author

Comment by @MarineChap on February 03, 2022 at 10:19 AM UTC:

I have a problem on this processor. Each data cycle, I will send in output a dataset with 1000 spikes with N real spikes and 1000-N samples lines filled with 0.

We cannot change the sample number once the stream info is finalized, what do you think about adding a nreal_samples attribute settable in each packet. By default it is equal to nsamples.

I would also add a warning when using directly nsamples in a process method if the nsamples and nreal_samples are different.

(this is similar of what Open-Ephys team / Juce Library framework did )

const std::string THRESHOLD = "threshold";
std::vector<std::string> features_labels_;
YAML::Node default_features_;
int slot_ = 0;

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment by @fkloosterman on July 18, 2022 at 12:34 PM UTC:

💬 Code comment on processors/spikefeatures/spikefeatures.hpp (line 58) (commit: b2aed67)

slot_


add_option("features", features_, "Selection of features to compute.", true);

add_option("channeldepths", channel_pos_, "Relation between channel number and depth.");

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment by @fkloosterman on July 18, 2022 at 12:35 PM UTC:

💬 Code comment on processors/spikefeatures/spikefeatures.cpp (line 27) (commit: b2aed67)

channel depth map? channel depth?

throw ProcessingConfigureError("If the depth feature is selected, the channelmap option "
"needs to give the mapping between channel label and depth.", name());

}

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment by @fkloosterman on July 18, 2022 at 12:38 PM UTC:

💬 Code comment on processors/spikefeatures/spikefeatures.cpp (line 64) (commit: b2aed67)

check if channel depth map has all channels

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment by @MarineChap on November 03, 2022 at 02:02 PM UTC:

💬 Code comment on processors/spikefeatures/spikefeatures.cpp (line 64) (commit: b2aed67)

Note: done in streaminfo

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: 5b3c9d18850c by marine chaput on October 28, 2021 at 09:54 AM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: f9a6214 by marine chaput on October 28, 2021 at 11:14 AM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

PR updated by marine chaput on October 28, 2021 at 11:45 AM UTC:

  • Description updated

@fkloosterman

Copy link
Copy Markdown
Member Author

PR updated by marine chaput on October 28, 2021 at 11:48 AM UTC:

  • Description updated

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: 67e3dd8 by marine chaput on November 10, 2021 at 03:29 PM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: 3642239 by marine chaput on November 19, 2021 at 05:57 PM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

PR updated by marine chaput on November 19, 2021 at 06:01 PM UTC:

  • Description updated

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: f4f44c6 by marine chaput on January 11, 2022 at 04:16 PM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

PR updated by marine chaput on January 14, 2022 at 12:37 PM UTC:

  • Description updated

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: 625bb05 by marine chaput on January 14, 2022 at 09:43 PM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: 12ec962 by marine chaput on January 17, 2022 at 06:16 PM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: ec26d4e by marine chaput on January 25, 2022 at 12:10 PM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: 4afff85 by marine chaput on February 10, 2022 at 09:51 AM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: d21306f by marine chaput on February 14, 2022 at 07:12 PM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: 28f6394 by marine chaput on March 24, 2022 at 11:31 AM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

Fabian Kloosterman approved the pull request on July 18, 2022 at 12:53 PM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: 64cb4d1 by marine chaput on September 09, 2022 at 01:28 PM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: a8ab7a7 by marine chaput on September 09, 2022 at 01:30 PM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: ac00b5b by marine chaput on September 09, 2022 at 02:06 PM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: 17be688 by marine chaput on September 29, 2022 at 08:22 AM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: 6f12f5a by marine chaput on September 29, 2022 at 08:24 AM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: 009464a by marine chaput on September 29, 2022 at 09:13 AM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

PR updated by marine chaput on September 29, 2022 at 09:16 AM UTC:

  • Description updated

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: 8ce0238 by marine chaput on October 20, 2022 at 08:50 AM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: f58f1f5 by marine chaput on October 25, 2022 at 09:04 AM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: fdb0a5a by marine chaput on October 25, 2022 at 11:33 AM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

New commit added to PR: b2aed67 by marine chaput on November 29, 2022 at 11:11 AM UTC

@fkloosterman

Copy link
Copy Markdown
Member Author

PR updated by marine chaput on December 22, 2022 at 01:24 PM UTC:

  • Title updated from '1st draft spike feature processor' to 'Spike feature processor'
  • Description updated

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant