plantinformatics / pretzel

Javascript full-stack framework for Big Data visualisation and analysis
GNU General Public License v3.0
43 stars 13 forks source link

feature search as a filter for dataset explorer #57

Open Don-Isdale opened 5 years ago

Don-Isdale commented 5 years ago

Set block.inFilter['feature'] to true if block is in blocksOfFeatures, false otherwise. Other filters can do the same, adding a named field in .inFilter[] of each block. filteredBlocks() can select those blocks which have only true values in their .inFilter[] Main requirement would likely be for intersection (logical AND) of the filters. filteredDatasets() would be the parents of filteredBlocks(). May also have filters which apply to datasets ... for that can add a .inFilter[] to dataset also; then filteredBlocks() will exclude a block if its parent is filtered out. and filteredDatasets() will include a dataset if it has children which are filtered in. The data explorer would display:none for datasets & blocks which are not in filteredDatasets() and filteredBlocks() respectively.

Don-Isdale commented 5 years ago

the above comment describes block.inFilter['feature']; probably computed function is better. implementation : computed function, uses the enabled filters' parameters, returns datasets and blocks; display is the union of those datasets and blocks, i.e. if dataset is in result, show it and its child blocks if block is in list, show that block and its parent. some filters :

Don-Isdale commented 5 years ago

to get some discussion going around how this would work, I've prototyped a possible GUI, in branch feature/explorer-filters. Here are some screen-shots :

filterselectpulldown featurespasted chromosomepulldown subgenomepulldown

Don-Isdale commented 5 years ago

from feedback :

rather than manually selecting chr and sub-genome, i'd have that as a "filter on already loaded" filter based on what's loaded so if you have a dataset with scope 7A loaded, filter for only those that's why scope is important, because in GMs, there are blocks with names like 7A2, but scope 7A at least should be you could have "filter by scope" and list all the scopes seen but with some genomes, the chromosome is just in as 1, 2, 3 feature name filter is the most important now and ability to populate that list from the brush as well which then replaces the current feature search function ... maybe a keyword as well which can be in metadata eg: 90k

Changes implemented in prototype GUI : change Chromosome to scope; add keyword input to search metadata; add button to copy selection to Feature Names to search for. Move Filter by sub-Genome into the group of filters which can be added via +, and are not initially displayed. changedtoscopeaddedkeywordcopy

Don-Isdale commented 5 years ago

The scope list would be derived from the datasets-available list which is loaded when connecting to the BE (because 1A makes sense for wheat, but not rice for example).

The "filter on already loaded" shows all blocks which have same scope as already loaded.. or several if more than one eg: if you load 7A and 7D physical it shows all genomes with 7A, 7D, and any genetic maps with 7A or 7D scope

Don-Isdale commented 5 years ago

filtering by chromosome and subgenome can be presented as a 2d matrix of checkboxes e.g. sub-genome as columns, and chromosomes as columns Should enable user to toggle a whole row or column, or individual cells. This would be the top-most filter, after the datasource selection.

rsuchecki commented 5 years ago

Thad would be neat, but if at all possible I would opt for a solution which does not explicitly rely on sub-genome as a defined property - this is quite specific to our genomes of interest so not broadly applicable.

I wonder if simple free text based filters would not be best.

Don-Isdale commented 5 years ago

see also #67

To guide new users and improve work-flow when starting : wizard in middle of screen when start : select species, parent, scope, map type,

Don-Isdale commented 5 years ago

Next tasks for data explorer

Don-Isdale commented 4 years ago