Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MRG: Add time player for the notebook backend #7940

Merged
merged 2 commits into from
Jul 1, 2020

Conversation

GuillaumeFavelier
Copy link
Contributor

This PR adds a "player" controller for the time slider with play, pause, stop and rewind. It also reorders the controllers for a cleaner UI.

image

It's part of #7162

@GuillaumeFavelier
Copy link
Contributor Author

I noticed incompatibilities between the orientation controller and the general camera settings. I will take care of that in another PR.

@agramfort
Copy link
Member

agramfort commented Jun 29, 2020 via email

@GuillaumeFavelier
Copy link
Contributor Author

The warnings on Circle don't seem related to this PR:

/home/circleci/project/mne/cov.py:docstring of mne.Covariance.clear:: WARNING: py:class reference target not found: None.  Remove all items from D.

/home/circleci/project/mne/cov.py:docstring of mne.Covariance.items:: WARNING: py:class reference target not found: a set-like object providing a view on D's items

/home/circleci/project/mne/cov.py:docstring of mne.Covariance.keys:: WARNING: py:class reference target not found: a set-like object providing a view on D's keys

/home/circleci/project/mne/cov.py:docstring of mne.Covariance.pop:: WARNING: py:class reference target not found: v, remove specified key and return the corresponding value.

/home/circleci/project/mne/cov.py:docstring of mne.Covariance.update:: WARNING: py:class reference target not found: None.  Update D from dict/iterable E and F.

/home/circleci/project/mne/cov.py:docstring of mne.Covariance.values:: WARNING: py:class reference target not found: an object providing a view on D's values

/home/circleci/project/mne/forward/forward.py:docstring of mne.Forward.clear:: WARNING: py:class reference target not found: None.  Remove all items from D.

/home/circleci/project/mne/forward/forward.py:docstring of mne.Forward.items:: WARNING: py:class reference target not found: a set-like object providing a view on D's items

/home/circleci/project/mne/forward/forward.py:docstring of mne.Forward.keys:: WARNING: py:class reference target not found: a set-like object providing a view on D's keys

/home/circleci/project/mne/forward/forward.py:docstring of mne.Forward.pop:: WARNING: py:class reference target not found: v, remove specified key and return the corresponding value.

/home/circleci/project/mne/forward/forward.py:docstring of mne.Forward.update:: WARNING: py:class reference target not found: None.  Update D from dict/iterable E and F.

/home/circleci/project/mne/forward/forward.py:docstring of mne.Forward.values:: WARNING: py:class reference target not found: an object providing a view on D's values

/home/circleci/project/mne/io/meas_info.py:docstring of mne.Info.clear:: WARNING: py:class reference target not found: None.  Remove all items from D.

/home/circleci/project/mne/io/meas_info.py:docstring of mne.Info.items:: WARNING: py:class reference target not found: a set-like object providing a view on D's items

/home/circleci/project/mne/io/meas_info.py:docstring of mne.Info.keys:: WARNING: py:class reference target not found: a set-like object providing a view on D's keys

/home/circleci/project/mne/io/meas_info.py:docstring of mne.Info.pop:: WARNING: py:class reference target not found: v, remove specified key and return the corresponding value.

/home/circleci/project/mne/io/meas_info.py:docstring of mne.Info.update:: WARNING: py:class reference target not found: None.  Update D from dict/iterable E and F.

/home/circleci/project/mne/io/meas_info.py:docstring of mne.Info.values:: WARNING: py:class reference target not found: an object providing a view on D's values

/home/circleci/project/mne/io/proj.py:docstring of mne.Projection.clear:: WARNING: py:class reference target not found: None.  Remove all items from D.

/home/circleci/project/mne/io/proj.py:docstring of mne.Projection.copy:: WARNING: py:class reference target not found: a shallow copy of D

/home/circleci/project/mne/io/proj.py:docstring of mne.Projection.items:: WARNING: py:class reference target not found: a set-like object providing a view on D's items

/home/circleci/project/mne/io/proj.py:docstring of mne.Projection.keys:: WARNING: py:class reference target not found: a set-like object providing a view on D's keys

/home/circleci/project/mne/io/proj.py:docstring of mne.Projection.pop:: WARNING: py:class reference target not found: v, remove specified key and return the corresponding value.

/home/circleci/project/mne/io/proj.py:docstring of mne.Projection.update:: WARNING: py:class reference target not found: None.  Update D from dict/iterable E and F.

/home/circleci/project/mne/io/proj.py:docstring of mne.Projection.values:: WARNING: py:class reference target not found: an object providing a view on D's values

/home/circleci/project/mne/beamformer/_compute_beamformer.py:docstring of mne.beamformer.Beamformer.clear:: WARNING: py:class reference target not found: None.  Remove all items from D.

/home/circleci/project/mne/beamformer/_compute_beamformer.py:docstring of mne.beamformer.Beamformer.items:: WARNING: py:class reference target not found: a set-like object providing a view on D's items

/home/circleci/project/mne/beamformer/_compute_beamformer.py:docstring of mne.beamformer.Beamformer.keys:: WARNING: py:class reference target not found: a set-like object providing a view on D's keys

/home/circleci/project/mne/beamformer/_compute_beamformer.py:docstring of mne.beamformer.Beamformer.pop:: WARNING: py:class reference target not found: v, remove specified key and return the corresponding value.

/home/circleci/project/mne/beamformer/_compute_beamformer.py:docstring of mne.beamformer.Beamformer.update:: WARNING: py:class reference target not found: None.  Update D from dict/iterable E and F.

/home/circleci/project/mne/beamformer/_compute_beamformer.py:docstring of mne.beamformer.Beamformer.values:: WARNING: py:class reference target not found: an object providing a view on D's values

/home/circleci/project/mne/bem.py:docstring of mne.bem.ConductorModel.clear:: WARNING: py:class reference target not found: None.  Remove all items from D.

/home/circleci/project/mne/bem.py:docstring of mne.bem.ConductorModel.items:: WARNING: py:class reference target not found: a set-like object providing a view on D's items

/home/circleci/project/mne/bem.py:docstring of mne.bem.ConductorModel.keys:: WARNING: py:class reference target not found: a set-like object providing a view on D's keys

/home/circleci/project/mne/bem.py:docstring of mne.bem.ConductorModel.pop:: WARNING: py:class reference target not found: v, remove specified key and return the corresponding value.

/home/circleci/project/mne/bem.py:docstring of mne.bem.ConductorModel.update:: WARNING: py:class reference target not found: None.  Update D from dict/iterable E and F.

/home/circleci/project/mne/bem.py:docstring of mne.bem.ConductorModel.values:: WARNING: py:class reference target not found: an object providing a view on D's values

/home/circleci/project/mne/minimum_norm/inverse.py:docstring of mne.minimum_norm.InverseOperator.clear:: WARNING: py:class reference target not found: None.  Remove all items from D.

/home/circleci/project/mne/minimum_norm/inverse.py:docstring of mne.minimum_norm.InverseOperator.items:: WARNING: py:class reference target not found: a set-like object providing a view on D's items

/home/circleci/project/mne/minimum_norm/inverse.py:docstring of mne.minimum_norm.InverseOperator.keys:: WARNING: py:class reference target not found: a set-like object providing a view on D's keys

/home/circleci/project/mne/minimum_norm/inverse.py:docstring of mne.minimum_norm.InverseOperator.pop:: WARNING: py:class reference target not found: v, remove specified key and return the corresponding value.

/home/circleci/project/mne/minimum_norm/inverse.py:docstring of mne.minimum_norm.InverseOperator.update:: WARNING: py:class reference target not found: None.  Update D from dict/iterable E and F.

/home/circleci/project/mne/minimum_norm/inverse.py:docstring of mne.minimum_norm.InverseOperator.values:: WARNING: py:class reference target not found: an object providing a view on D's values

/home/circleci/project/mne/transforms.py:docstring of mne.transforms.Transform.clear:: WARNING: py:class reference target not found: None.  Remove all items from D.

/home/circleci/project/mne/transforms.py:docstring of mne.transforms.Transform.items:: WARNING: py:class reference target not found: a set-like object providing a view on D's items

/home/circleci/project/mne/transforms.py:docstring of mne.transforms.Transform.keys:: WARNING: py:class reference target not found: a set-like object providing a view on D's keys

/home/circleci/project/mne/transforms.py:docstring of mne.transforms.Transform.pop:: WARNING: py:class reference target not found: v, remove specified key and return the corresponding value.

/home/circleci/project/mne/transforms.py:docstring of mne.transforms.Transform.update:: WARNING: py:class reference target not found: None.  Update D from dict/iterable E and F.

/home/circleci/project/mne/transforms.py:docstring of mne.transforms.Transform.values:: WARNING: py:class reference target not found: an object providing a view on D's values

@larsoner
Copy link
Member

I'll look into CircleCI

@larsoner larsoner mentioned this pull request Jun 29, 2020
@GuillaumeFavelier GuillaumeFavelier changed the title Add time player for the notebook backend WIP: Add time player for the notebook backend Jun 30, 2020
@GuillaumeFavelier GuillaumeFavelier changed the title WIP: Add time player for the notebook backend MRG: Add time player for the notebook backend Jul 1, 2020
@GuillaumeFavelier
Copy link
Contributor Author

I think this is ready to go now.

@agramfort
Copy link
Member

works great !

to discuss (in a next PR if you want) is if it's wiser to specify time in ms and not in time index in the slider.

I would personally prefer to show time in ms

@larsoner
Copy link
Member

larsoner commented Jul 1, 2020

I would personally prefer to show time in ms

One problem is that a lot of times (cluster summary, custom STCs) milliseconds are not the units and don't really make sense. Time index is at least agnostic to this problem. In theory the time_label should be used because then the user has some control over how it gets labeled. Internally the code can use indices, and just make sure the slider gets labeled by the time_label-formatted value for example.

@agramfort
Copy link
Member

agramfort commented Jul 1, 2020 via email

@larsoner
Copy link
Member

larsoner commented Jul 1, 2020

Works great!

@larsoner larsoner merged commit ce30458 into mne-tools:master Jul 1, 2020
@GuillaumeFavelier GuillaumeFavelier deleted the notebook_time_player branch July 2, 2020 09:18
larsoner added a commit to larsoner/mne-python that referenced this pull request Jul 8, 2020
* upstream/master: (30 commits)
  MRG: Add remove_labels to _Brain (mne-tools#7964)
  Add get_picked_points (mne-tools#7963)
  ENH: Add OpenGL info to mne sys_info (mne-tools#7976)
  [MRG] Fix reject_tmin and reject_tmax for reject_by_annotation in mne.Epochs (mne-tools#7967)
  mrg: Add scalar mult and div operators for AverageTFR (mne-tools#7957)
  MRG, MAINT: Cleaner workaround for Sphinx linking issue (mne-tools#7970)
  MRG, ENH: Speed up epochs.copy (mne-tools#7968)
  MRG, BUG: Allow ref mags to have a comp grade (mne-tools#7965)
  do not forget to pass adjacency (mne-tools#7961)
  [MRG] fix Issue with stc.project after restricting to a label (mne-tools#7950)
  Only process nirx event file if present (mne-tools#7951)
  MRG+1: BUG: info['bads'] order shouldn't matter in write_evokeds() (mne-tools#7954)
  Fix some small glitches introduced via mne-tools#7845 (mne-tools#7952)
  Add time player (mne-tools#7940)
  MAINT: Clean up VTK9 offset array [circle front] (mne-tools#7953)
  MAINT: Skip a few more on macOS (mne-tools#7948)
  fix links [skip travis] (mne-tools#7949)
  MRG, MAINT: Tweak CIs (mne-tools#7943)
  MRG, BUG: Fix vector scaling (mne-tools#7934)
  MRG, VIZ, BUG: handle CSD channel type when topo plotting (mne-tools#7935)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants