question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Feature Requests and Tweaks

See original GitHub issue

Hey Cyrille,

We’ve been continuing to work on phy and we’ve solicited suggestions for changes from a number of other users. Below are some changes that we would love for you to incorporate into the main branch or implement as you see fit. There seems to be a consensus on the following suggestions on our end:

First a couple things which we’ve prototyped implementations of:

  1. Normalization of templates before scaling in TemplateView.

    Currently, the templates (which start off arbitrarily scaled) are then multiplied twice by amplitude. We think it makes more sense that each template is scaled to the mean waveform amplitude. We fix this with 23e15d5cef0e360a9ba2c3673ca04006d25e699c.

  2. Shift+click on TemplateView to select multiple clusters.

    Done with 735bc9bd3f7b9db3bac99814cc34448d8416a09c.

Next are some issues and additions relating to Amplitude view. These changes ensure apples-to-apples comparisons between clusters.

  1. Raw amplitude should show the maximum - minimum on the principle channel of the first selected cluster (by default at least, see #3 below) for all selected clusters, not on the principle channel of each cluster,. If amplitude for a cluster is not available on the principle channel of the first selected cluster (because its far away from the first selected cluster), plot zeros.
    def get_spike_raw_amplitudes(self, spike_ids, channel_ids=None, **kwargs):
        """Return the maximum amplitude of the raw waveforms across all channels."""
        # WARNING: extracting raw waveforms is long!
        waveforms = self.model.get_waveforms(spike_ids, channel_ids)
        if waveforms is None:
            return
        assert waveforms.ndim == 3  # shape: (n_spikes, n_samples, n_channels_loc)
        return (waveforms.max(axis=1) - waveforms.min(axis=1)).max(axis=1)

In this function it seems that the raw amplitude is just the largest maximum - minimum considering all channels.

  1. Template projections should be the projection of each spike shown onto the first selected cluster’s template, not projections onto its own clusters template

  2. It would be good to be able to choose the channel from which AmplitudeView draws data (at least for ‘raw’ and ‘feature’ modes) in the same way that FeatureView responds to a ctrl+click on the WaveformView. That is, raw amplitudes/feature values would be calculated from the clicked channel instead of the principle channel of the first selected cluster. There would be no effect on the template amplitudes since there is only a single template projection (covering many channels) associated with each spike.

Lastly, various issues/requests raised by others:

  1. Allow customization of the columns displayed in ClusterView (ordering, which to show, etc.)

  2. Define the length of the displayed waveform in the WaveformView (currently a bit too long).

  3. Increase default font size from 4 to 6 as in 82cadb79cf49170b4d49008e5d9b91c6ca9dc44d.

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:6 (6 by maintainers)

github_iconTop GitHub Comments

1reaction
rossantcommented, Aug 11, 2019

Thanks for the explanations and for your code propositions! So all of your suggestions should be implemented now in the dev branch (I merged your branch locally before making some changes so I had to close the pull request). I decided to have the template amplitude showing just the numbers saved in amplitudes.npy with no further modifications, and adding a new amplitude type named feature_template with your proposition (the dot product).

0reactions
mswallaccommented, Aug 12, 2019

Awesome, thanks Cyrille!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Feature Requests: What are they and how to manage them
Feature requests are a form of product feedback you may frequently encounter as a SaaS product manager. They typically come in the form...
Read more >
Feature request tracking: 3 strategies to do it better
Feature requests scattered across channels? Use these 3 PROVEN strategies for tracking and managing feature requests effortlessly.
Read more >
Feature Requests: How to Collect Them and Engage Users ...
Feature requests are an important window into your customers desires and priorities. Here's how to make the most of them, and handle the ......
Read more >
How to Collect and Manage Feature Requests in SaaS
In this article, we'll cover several methods for collecting and managing feature requests to meet customer expectations for your SaaS.
Read more >
Feature requests: tweaks that will make tasks run more ...
Response time is crucial. To the average user a slow response means that the background computation is making the computer slow, so preferences ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found