#215 closed defect (fixed)
Incorrect use of DynamicSpotQuery in table view, plot function, filter function, etc.
Reported by: | Nicklas Nordborg | Owned by: | Nicklas Nordborg |
---|---|---|---|
Priority: | major | Milestone: | BASE 2.2 |
Component: | web | Version: | |
Keywords: | Cc: |
Description (last modified by )
If a bioassayset contains merged data, ie. data where one data cube spot corresponds to more than one raw data spot, the code doesn't use DynamicSpotQuery correctly.
For example, let's assume that we have a hybridization with 20 spots and 10 reporters. There are two spots for each reporter. Now, in the analysis we merge on the reporters and are left with 10 data cube spots, each one representing 2 raw data spots. In the table list view, we will get 10 hits of we only view the intensities, but 20 hits if we also view some raw data column. The same happens in the plot function. It will plot 10 spots if we only use the intensities, but 20 spots if we use a raw data column. The same happens in the filter funtion. In this case can also result in an exception or bad data corrupting the database. For example, a filter matches 7 data cube spots may match 14 raw data spots if we use a raw data column in the filter. This would probably result in an error since the code would try to insert duplicate entries in the filtered bioassay set.
How do we solve this? Some suggestions:
1) Always use aggregation function when using raw data columns. Ie. you have to specify if you want to use the mean, min, max, etc. when you use a raw data column. This works for numerical columns, but how do we handle string data?
2) ... well... more suggestions are welcome
Change History (6)
comment:1 by , 18 years ago
comment:2 by , 18 years ago
Description: | modified (diff) |
---|---|
Milestone: | BASE 2.x+ → BASE 2.2 |
comment:3 by , 18 years ago
Status: | new → assigned |
---|
comment:4 by , 18 years ago
This will be fixed as follows:
Each bioassayset/datacube will keep a count of the maximum number mappings to raw data for a single spot. If the maximum is one (ie. each spot has at most 1 link back to raw data) everything will work as before. If the maximum is 0 or > 1 raw data will only be accessible from the tabular list page. Ie. it can nnot be used by the filter plugin, plotted in the plot tool, or viewed from experiment explorer. The reason is that the current implementation of these doesn't make sense when there are multiple mappings to raw data spots.
Note that it is still possible to develop other plugins which can use the raw data if that makes sense.
comment:5 by , 18 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
(In [2993]) Fixes #215: Incorrect use of DynamicSpotQuery in table view, plot function, filter function, etc.
comment:6 by , 18 years ago
(In [2998]) References #215: Incorrect use of DynamicSpotQuery...
Fixed problem with DataCube.onBeforeCommit() never beeing called, and no spot count was generated.
(In [2815]) References #215: Incorrect use of DynamicSpotQuery in table view, plot function, filter function, etc.
Added a simple test case for generating a small data set that can be used for testing out ideas and solutions.