Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As it stands, colour/channel handling in PYMEVis feels a bit like black magic. To do anything on a per-channel basis you currently need to create a
ColourFilter
on top of the current data source. This is generally obfuscated behind the UI, and it's not immediately clear (unless you already know) what to do if you want to create a channel aware recipe module.The status-quo is largely an artefact of the original fixed pipeline and is optimised for ratiometric approach to multi-colour. To accomodate a wider range of use cases (and to make recipes a bit clearer) the best option is likely to give all tabular sources some minimal channel awareness. This is a test implementation of what that could look like.
At this point very much a work in progress and could change significantly, but putting it up as a draft to solicit comments/opinions.
Key points
channel_names
attribute (returns an empty list for non-channel data), and aget_channel_ds(channel_name)
method which returns a single channel tabular source with just that channel.pipeline.dataSources
by using a key with the channel name appended after a dot e.g.pipeline.dataSources['filtered_localizations.Chan0']