Opened 15 years ago
Closed 15 years ago
#1418 closed defect (fixed)
List of inherited annotations may include annotations that are not inherited and in some cases duplicates
Reported by: | Jari Häkkinen | Owned by: | Nicklas Nordborg |
---|---|---|---|
Priority: | critical | Milestone: | BASE 2.14.1 |
Component: | web | Version: | 2.14 |
Keywords: | Cc: |
Description
I have two different symptoms on the problem. The problem is found in 2.14
1) The problem is reproducible by annotating one sample with two annotation types, e.g., A and B. Then select to inherit A to the child extract. Now the extract will actually have inherited both A and B. If one now continues to inherit also B to the extract then A and B will be inherited twice in the extract. Interestingly, selecting to inherit all annotation (by clicking on the sample selection in the inherit annotation dialogue) from the sample to the extract will only inherit the annotations one time as expected.
2) The problem also affects experimental factors. If the two annotations are selected as experimental factors for an experiment, going to the experiment properties tab will show that both annotations A and B are missing. Clicking on the missing text will make BASE to fetch the annotations for the annotation A clicked on. The display will correctly show the annotation A values. The other annotation value B will still be reported as missing which is expected and the B values are not visible in the raw bioassay list. The peculiar thing is that if one clicks on one of the raw bioassays will show that both A and B was inherited to the raw bioassay (which is of course the same problem as in 1). If one now clicks on the missing link also for B in the experiment properties tab then the B values will be shown together with A values, but each raw bioassay will now how inherited the values twice.
Validating the experiment in the experiment overview will of course complain on multiple inherited values.
We have not examined if the annotations values are useful for us in downstream analysis.
Change History (6)
comment:1 by , 15 years ago
comment:2 by , 15 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:3 by , 15 years ago
From what I can see
- The information in the database is correct, the annotations are not inherited multiple times
- In places were the caching system is used for looking up a specific annotation type it returns the correct result. This includes the following places:
- View experiment page with the "Experimental factors" and "Raw bioassays" tables.
- Experiment explorer including the plots
- The plot tool
- BASEfile exporter and Base1PluginExecuter
- In places were the caching system is used to load all, including inherited, annotations for an item it returns an incorrect result. It seems like the returned list will contain one copy of all annotations from the item for each annotation that is inherited from it. Eg. if we inherit one annotation from an item that has five all five are included, if we inherit two annotations all five are included twice and so on... So far I have identifed two places:
- The "Item overview", which can cause the validation functionality to generate incorrect warnings/errors about duplicate annotations.
- The "Annotations & parameters" for a single-item view. The list contains annotations that are not actually inherited and may also contain duplictes (or more) of the same annotation.
comment:4 by , 15 years ago
I agree with your findings, we made some further test using experiment explorer and other analysis and the outcome was as expected.
comment:5 by , 15 years ago
Summary: | Inheriting annotations from parent item will inherit all annotations even if only one annotation is selected → List of inherited annotations may include annotations that are not inherited and in some cases duplicates |
---|
comment:6 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
I think the problem is with the caching system. The information in the database seems to be correct. The only place which uses the information from database is the various "Annotations" and "Inhertied annotations" tabs in the "Edit" dialogs. And the information seems to be correct in those dialogs. Most (or all) other places uses the cached information. My guess is that the code that is reading from the cache has a bug somewhere that causes it to match more annotations than what is expected.