#837 closed task (fixed)
MeLuDI v.1.4.1 bug fixes and improvements
Reported by: | olle | Owned by: | olle |
---|---|---|---|
Priority: | major | Milestone: | MeLuDI v1.4.2 |
Component: | net.sf.basedb.meludi | Keywords: | |
Cc: |
Description
This ticket covers bug fixes and improvements to MeLuDI v.1.4.1.
Change History (15)
comment:1 by , 9 years ago
Status: | new → assigned |
---|
comment:2 by , 9 years ago
Traceability note:
- MeLuDi v.1.0 was introduced in Ticket #690 (MeLuDi - Registration wizard for melanoma-lung cancer projects).
- MeLuDi v.1.1 was introduced in Ticket #718 (MeLuDi v.1.0 bug fixes and improvements).
- MeLuDi v.1.2 was introduced in Ticket #725 (MeLuDi v.1.1 bug fixes and improvements).
- MeLuDI v.1.2.1 was introduced in Ticket #759 (MeLuDi v.1.2 bug fixes and improvements).
- MeLuDI v.1.2.2 was introduced in Ticket #767 (MeLuDI v.1.2.1 bug fixes and improvements).
- MeLuDI v.1.2.3 was introduced in Ticket #768 (MeLuDI v.1.2.2 bug fixes and improvements).
- MeLuDI v.1.2.4 was introduced in Ticket #777 (MeLuDI v.1.2.3 bug fixes and improvements).
- MeLuDI v.1.2.5 was introduced in Ticket #786 (MeLuDI v.1.2.4 bug fixes and improvements).
- MeLuDI v.1.3.1 was introduced in Ticket #792 (MeLuDI v.1.2.5 bug fixes and improvements).
- First version of library preparation wizards was introduced in Ticket #801 (MeLuDI library preparation wizards first version).
- MeLuDI v.1.3.2 was introduced in Ticket #802 (MeLuDI v.1.3.1 bug fixes and improvements).
- MeLuDI v.1.3.3 was introduced in Ticket #815 (MeLuDI v.1.3.2 bug fixes and improvements).
- MeLuDI v.1.4.0 was introduced in Ticket #816 (MeLuDI v.1.3.3 bug fixes and improvements).
- MeLuDI v.1.4.1 was introduced in Ticket #836 (MeLuDI v.1.4.0 bug fixes and improvements).
comment:3 by , 9 years ago
(In [3712]) Refs #837. Updates due to version number change to "1.4.2-dev
".
- Version number changed to "
1.4.2-dev
":
a. Outermost Ant XML build filebuild.xml
in/
updated.
b. Extensions XML configuration fileextensions.xml
inMETA-INF/
updated.
c. Javascript filemeludi-2.js
inresources/
updated.
d. Javascript filesamplereportgenerator.js
inresources/reports/
updated.
e. Java class/fileMeludi.java
insrc/net/sf/basedb/meludi/
updated.
comment:4 by , 9 years ago
Functional specification update:
- Wizard "Inspect/edit library preparation kit data" in sub-section "Reagent kit management wizards" in section "Library preparation wizards" should be updated in step 1 by changing default menu item from "All" to "Used & active", since it is the latter kits that most often are of interest.
Design update:
- JSP file
inspect_libprep_kit_data.jsp
inresources/libprep/
updated in step 1 by changing default menu item from "All" to "Used & active".
comment:5 by , 9 years ago
(In [3713]) Refs #837. Wizard "Inspect/edit library preparation kit data" in sub-section "Reagent kit management wizards" in section "Library preparation wizards" updated in step 1 by changing default menu item from "All" to "Used & active", since it is the latter kits that most often are of interest:
- JSP file
inspect_libprep_kit_data.jsp
inresources/libprep/
updated in step 1 by changing default menu item from "All" to "Used & active".
comment:6 by , 9 years ago
Background information:
- Not all DNA extracts registered in MeLuDI will be put on a start DNA plate. Some extracts, typically those with high ΔCt values, will be put aside for qPCR processing. A consequence is that a start list containing one or more of these extracts will always appear in the selection menu in step 1 of the wizard for creating a start DNA plate. There should therefore be a way to mark such items as destined for qPCR, and a start list only containing these extracts and extracts already put on a start DNA plate should no longer appear in the selection menu for creating a start DNA plate.
Suggested changes:
- A boolean annotation type is defined for DNA extracts, indicating if they are destined for qPCR processing.
- A new wizard, or an existing one, should be available for selecting DNA extracts to be marked for qPCR processing using the new annotation type. The ΔCt values for the DNA extracts should be shown, if existing, but the selection of what DNA extracts to be marked for qPCR processing should be up to the user.
- A start list only containing DNA extracts marked for qPCR processing and extracts already put on a start DNA plate should no longer appear in the selection menu for creating a start DNA plate.
- When a start list is chosen in the selection menu for creating a start DNA plate, only DNA extracts not already on a start plate and not marked for qPCR processing should appear in selection menus in later steps.
Design discussion:
- Regarding whether an existing wizard or a separate one should be used for selecting DNA extracts to be marked for qPCR processing, the most natural alternatives are:
a. Wizard "Create new start DNA plate" could be updated in step 2 (DNA extract selection) with a check box for marking all extracts not selected as destined for qPCR processing.
b. A new wizard where a start list is selected in step 1, and the qPCR branch setting for DNA extracts not already on a start DNA plate can be modified.
Alternative (b) has the advantage that an extract marked for the qPCR branch can be reset, and qPCR branch settings can be modified for extracts in a start list, that does not contain any extracts to be put on a start DNA plate. (Such a start list will never alone reach the "Registration" step in the "Create new start DNA plate" wizard.)
comment:7 by , 9 years ago
Functional specification update:
- Support for marking DNA extracts for qPCR processing should be added:
a. A new wizard "Mark DNA for qPCR" should be added to sub-section "Start DNA plate wizards" in section "Library preparation wizards". Step 1 should allow a start list with DNA extracts not on a start plate to be selected. Step 2 should display qPCR branch settings for all DNA extracts not on a start plate, and allow the former to be modified. It should be possible to enter a maximum ΔCt value for extracts to be put on a start plate (default: 8), and all extracts with lower ΔCt values should be pre-selected for the qPCR branch.
b. A start list only containing extracts already put on a start DNA plate and extracts marked for qPCR should no longer appear in the selection menu for creating a start DNA plate.
c. When a start list is chosen in the selection menu for creating a start DNA plate, only DNA extracts not already on a start plate and not marked for qPCR processing should appear in selection menus in later steps.
Design update:
- JSP file
index.jsp
inresources/
updated with new entry "Mark DNA for qPCR" in sub-section "Start DNA plate wizards" in section "Library preparation wizards", coupled to new JSP filemark_dna_for_qpcr.jsp
inresources/libprep/
. - New JSP file
mark_dna_for_qpcr.jsp
inresources/´libprep/
added. It is coupled to new javascript filemark_dna_for_qpcr.js
inresources/´libprep/
. - New javascript file
mark_dna_for_qpcr.js
inresources/´libprep/
added. It contains two steps: Step 1 allows a start list with DNA extracts not on a start plate to be selected. Step 2 displays qPCR branch settings for all DNA extracts not on a start plate, and allows the former to be modified. At registration, aPOST
request is made to java servletDnaServlet
with newcommand "
UpdateDnaQpcrBranchFlag
". - Javascript file
select_dna_for_start_plate.js
inresources/´libprep/
updated:
a. FunctioninitPage()
updated in call to java servletExtractionServlet
with command "GetStartItemLists
" to set new attribute "ignoreQpcrBranch
" totrue
.
b. FunctioninitializeStep2(event)
updated in call to java servletExtractionServlet
with command "GetListOfItemsFromStartItemLists
" to set new attribute "ignoreQpcrBranch
" totrue
.
c. FunctiondnaItemListLoaded(response)
updated to display ΔCt values for DNA extracts in selection menu.
d. FunctionmaxDeltaCtOnChange(event)
updated updated in call to java servletExtractionServlet
with command "GetListOfItemsFromStartItemLists
" to set new attribute "ignoreQpcrBranch
" totrue
. Also bug fix by setting attribute "itemNotOnLibPlate
" totrue
(this should have been present in earlier version of the code). - Data access object class/file
Annotationtype.java
insrc/net/sf/basedb/meludi/dao/
updated:
a. New boolean extract annotation typeQPCR_BRANCH
defined. - Java servlet class/file
InstallServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in protected methodvoid doGet(HttpServletRequest req, HttpServletResponse resp)
to include the new extract annotation type for qPCR branch, and add it toSubtype.DNA
annotation type category. - Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated:
a. Protected methodvoid doGet(HttpServletRequest req, HttpServletResponse resp)
updated for commands "GetStartItemLists
", "GetUnprocessedStartItemLists
", and "GetProcessedStartItemLists
" to retrieve value of new Boolean request parameter "ignoreQpcrBranch
" and use this as argument when calling updated private methodJSONArray fetchStartItemLists(DbControl dc, Boolean processed, Boolean orderDesc, Boolean anItemNotOnLibPlate, Boolean ignoreQpcrBranch)
. Command "GetListOfItemsFromStartItemLists
" updated to retrieve value of new Boolean request parameter "ignoreQpcrBranch
", and to ignore the qPCR branch if the value of the parameter istrue
.
b. Private methodJSONArray fetchStartItemLists(DbControl dc, Boolean processed, Boolean orderDesc, Boolean anItemNotOnLibPlate, Boolean ignoreQpcrBranch)
updated with new argumentBoolean ignoreQpcrBranch
, and to ignore the qPCR branch if the value of the argument istrue
.
c. Private methodvoid loadDnaInfo(DbControl dc, SnapshotManager manager, Dna dna)
updated to add value of annotationAnnotationtype.QPCR_BRANCH
for JSON key "qpcrBranch
". - Java servlet class/file
DnaServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in protected methodvoid doPost(HttpServletRequest req, HttpServletResponse resp)
with new command "UpdateDnaQpcrBranchFlag
" to retrieve DNA id and new qPCR branch values from submit info and update value ofAnnotationtype.QPCR_BRANCH
for those extracts, where the setting has changed. - Java counter service class/file
CounterService.java
insrc/net/sf/basedb/meludi/counter/
updated in private methodvoid countItemLists(DbControl dc, JSONObject json)
to ignore extracts marked for qPCR when counting the number of processed start lists with at least one item, that has not been placed on a start plate (library plate), and return the number with JSON key "start-lists-processed-an-item-not-on-lib-plate
".
comment:8 by , 9 years ago
(In [3719]) Refs #837. Support for marking DNA extracts for qPCR processing added:
a. A new wizard "Mark DNA for qPCR" added to sub-section "Start DNA plate wizards" in section "Library preparation wizards". Step 1 allows a start list with DNA extracts not on a start plate to be selected. Step 2 displays qPCR branch settings for all DNA extracts not on a start plate, and allows the former to be modified. It is possible to enter a maximum ΔCt value for extracts to be put on a start plate (default: 8), and all extracts with larger ΔCt values are pre-selected for the qPCR branch.
b. A start list only containing extracts already put on a start DNA plate and extracts marked for qPCR no longer appears in the selection menu for creating a start DNA plate.
c. When a start list is chosen in the selection menu for creating a start DNA plate, only DNA extracts not already on a start plate and not marked for qPCR processing appear in selection menus in later steps.
- JSP file
index.jsp
inresources/
updated with new entry "Mark DNA for qPCR" in sub-section "Start DNA plate wizards" in section "Library preparation wizards", coupled to new JSP filemark_dna_for_qpcr.jsp
inresources/libprep/
. - New JSP file
mark_dna_for_qpcr.jsp
inresources/´libprep/
added. It is coupled to new javascript filemark_dna_for_qpcr.js
inresources/´libprep/
. - New javascript file
mark_dna_for_qpcr.js
inresources/´libprep/
added. It contains two steps: Step 1 allows a start list with DNA extracts not on a start plate to be selected. Step 2 displays qPCR branch settings for all DNA extracts not on a start plate, and allows the former to be modified. At registration, aPOST
request is made to java servletDnaServlet
with newcommand "
UpdateDnaQpcrBranchFlag
". - Javascript file
select_dna_for_start_plate.js
inresources/´libprep/
updated:
a. FunctioninitPage()
updated in call to java servletExtractionServlet
with command "GetStartItemLists
" to set new attribute "ignoreQpcrBranch
" totrue
.
b. FunctioninitializeStep2(event)
updated in call to java servletExtractionServlet
with command "GetListOfItemsFromStartItemLists
" to set new attribute "ignoreQpcrBranch
" totrue
.
c. FunctiondnaItemListLoaded(response)
updated to display ΔCt values for DNA extracts in selection menu.
d. FunctionmaxDeltaCtOnChange(event)
updated updated in call to java servletExtractionServlet
with command "GetListOfItemsFromStartItemLists
" to set new attribute "ignoreQpcrBranch
" totrue
. Also bug fix by setting attribute "itemNotOnLibPlate
" totrue
(this should have been present in earlier version of the code). - Data access object class/file
Annotationtype.java
insrc/net/sf/basedb/meludi/dao/
updated:
a. New boolean extract annotation typeQPCR_BRANCH
defined. - Java servlet class/file
InstallServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in protected methodvoid doGet(HttpServletRequest req, HttpServletResponse resp)
to include the new extract annotation type for qPCR branch, and add it toSubtype.DNA
annotation type category. - Java servlet class/file
ExtractionServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated:
a. Protected methodvoid doGet(HttpServletRequest req, HttpServletResponse resp)
updated for commands "GetStartItemLists
", "GetUnprocessedStartItemLists
", and "GetProcessedStartItemLists
" to retrieve value of new Boolean request parameter "ignoreQpcrBranch
" and use this as argument when calling updated private methodJSONArray fetchStartItemLists(DbControl dc, Boolean processed, Boolean orderDesc, Boolean anItemNotOnLibPlate, Boolean ignoreQpcrBranch)
. Command "GetListOfItemsFromStartItemLists
" updated to retrieve value of new Boolean request parameter "ignoreQpcrBranch
", and to ignore the qPCR branch if the value of the parameter istrue
.
b. Private methodJSONArray fetchStartItemLists(DbControl dc, Boolean processed, Boolean orderDesc, Boolean anItemNotOnLibPlate, Boolean ignoreQpcrBranch)
updated with new argumentBoolean ignoreQpcrBranch
, and to ignore the qPCR branch if the value of the argument istrue
.
c. Private methodvoid loadDnaInfo(DbControl dc, SnapshotManager manager, Dna dna)
updated to add value of annotationAnnotationtype.QPCR_BRANCH
for JSON key "qpcrBranch
". - Java servlet class/file
DnaServlet.java
insrc/net/sf/basedb/meludi/servlet/
updated in protected methodvoid doPost(HttpServletRequest req, HttpServletResponse resp)
with new command "UpdateDnaQpcrBranchFlag
" to retrieve DNA id and new qPCR branch values from submit info and update value ofAnnotationtype.QPCR_BRANCH
for those extracts, where the setting has changed. - Java counter service class/file
CounterService.java
insrc/net/sf/basedb/meludi/counter/
updated in private methodvoid countItemLists(DbControl dc, JSONObject json)
to ignore extracts marked for qPCR when counting the number of processed start lists with at least one item, that has not been placed on a start plate (library plate), and return the number with JSON key "start-lists-processed-an-item-not-on-lib-plate
".
comment:9 by , 9 years ago
Functional specification update:
- A bug was found in wizard "DNA/RNA registration/quantification", sub-section "DNA/RNA extraction wizards", section "Sample processing wizards", when entering values for concentrations or ΔCt for input extracts: Value "0" was replaced with a
null
value when the table was updated.
Analysis:
- Code inspection and test of javascript file
extraction_registration.js
inresources/sampleproc/
revealed that the problem was coupled to if-statements of the typeif (!item.dna.deltaCt) {...}
that was used to update a variable, when its value wasnull
. The problem occurred because the if-statement did returntrue
, not only whenitem.dna.deltaCt
had valuenull
, but also 0, while other values lead to return-valuefalse
. The problem was fixed by replacing the if-statement above withif (item.dna.deltaCt == null) {...}
that lacks the previous side effects.
Design update:
- Javascript file
extraction_registration.js
inresources/´sampleproc/
updated by replacing if-statements of type "if (!item.dna.deltaCt) {...}
" with "if (item.dna.deltaCt == null) {...}
", that lacks side effects, when the value is 0. Updates in functionupdateDetailsTable()
should fix the problem with entering 0 for concentrations or ΔCt for input extracts, but if-statements of this type in other functions were also changed.
comment:10 by , 9 years ago
(In [3720]) Refs #837. Bug (hopefully) fixed in wizard "DNA/RNA registration/quantification", sub-section "DNA/RNA extraction wizards", section "Sample processing wizards", when entering values for concentrations or ΔCt for input extracts: Value "0" was replaced with a null
value when the table was updated.
- Javascript file
extraction_registration.js
inresources/´sampleproc/
updated by replacing if-statements of type "if (!item.dna.deltaCt) {...}
" with "if (item.dna.deltaCt == null) {...}
", that lacks side effects, when the value is 0. Updates in functionupdateDetailsTable()
should fix the problem with entering 0 for concentrations or ΔCt for input extracts, but if-statements of this type in other functions were also changed.
comment:11 by , 9 years ago
(In [3721]) Refs #837. Updates due to version number change to "1.4.2a1
".
- Version number change to "
1.4.2a1
":
a. Outermost Ant XML build filebuild.xml
in/
updated.
b. Extensions XML configuration fileextensions.xml
inMETA-INF/
updated.
c. Javascript filemeludi-2.js
inresources/
updated.
d. Javascript filesamplereportgenerator.js
inresources/reports/
updated.
e. Java class/fileMeludi.java
insrc/net/sf/basedb/meludi/
updated.
comment:12 by , 9 years ago
(In [3722]) Refs #837. Updates due to version number change to "1.4.2-dev
".
- Version number change to "
1.4.2-dev
":
a. Outermost Ant XML build filebuild.xml
in/
updated.
b. Extensions XML configuration fileextensions.xml
inMETA-INF/
updated.
c. Javascript filemeludi-2.js
inresources/
updated.
d. Javascript filesamplereportgenerator.js
inresources/reports/
updated.
e. Java class/fileMeludi.java
insrc/net/sf/basedb/meludi/
updated.
comment:13 by , 9 years ago
Project update:
- On 2016-01-21 it was announced that the parent project using the MeLuDI software would not be continued after midsummer, and might be terminated even earlier, since another laboratory should perform the analyses in question. It was decided to update the software with fixes and features already agreed upon at the time of the announcement, and release MeLuDI v1.4.2 directly after the latter updates had been tested. Future releases with bug fixes may appear, but no new releases with new features are planned. An exception to this can be made, if a new feature would substantially simplify the laboratory work during the remaining months, and be added in time for it to be used.
comment:14 by , 9 years ago
(In [3727]) Refs #837. Updates due to version number change to "1.4.2
".
- Version number changed to "
1.4.2
":
a. Outermost Ant XML build filebuild.xml
in/
updated.
b. Extensions XML configuration fileextensions.xml
inMETA-INF/
updated.
c. Javascript filemeludi-2.js
inresources/
updated.
d. Javascript filesamplereportgenerator.js
inresources/reports/
updated.
e. Java class/fileMeludi.java
insrc/net/sf/basedb/meludi/
updated.
comment:15 by , 9 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Ticket closed as MeLuDI version 1.4.2 has been created.
Ticket accepted.