Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#815 closed task (fixed)

MeLuDI v.1.3.2 bug fixes and improvements

Reported by: olle Owned by: olle
Priority: major Milestone: MeLuDI v1.3.3
Component: net.sf.basedb.meludi Keywords:
Cc:

Description

This ticket covers bug fixes and improvements to MeLuDI v.1.3.2.

Change History (17)

comment:1 by olle, 9 years ago

Status: newassigned

Ticket accepted.

comment:2 by olle, 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).

comment:3 by olle, 9 years ago

(In [3512]) Refs #801. Refs #815. Updates due to version number change to "1.3.3-dev".

  1. Version number change to "1.3.3-dev":
    a. Outermost Ant XML build file build.xml in / updated.
    b. Extensions XML configuration file extensions.xml in META-INF/ updated.
    c. Javascript file meludi-2.js in resources/ updated.
    d. Javascript file samplereportgenerator.js in resources/reports/ updated.
    e. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:4 by olle, 9 years ago

(In [3514]) Refs #815. Java servlet class/file MeludiQuarterMonthReportServlet.java in src/net/sf/basedb/meludi/servlet/ updated:

  1. Name of constants for number of decimals and chart variants changed to upper case with underscore separators, in order to increase visibility in code.
  2. Private method String fetchProjectFocusFilterName(String projectFocusFilter) updated to use string constants already defined in class InstallServlet for project focus filter menu items, instead of explicit string values.
  3. Private method String fetchChartHeaderTitle(String chartVariant, String viewType, String projectFocusFilter, Site site) updated by exchanging "MeLuDI extractions by" for "extracts by", in order to shorten the title, and prepare for adding more information in the future.

comment:5 by olle, 9 years ago

Functional specification update:

  • The "MeLuDI quarter/month report" in the "Sample processing statistics" wizard should be updated to allow an extract source filter, with the following choices:
    a. None
    b. MeLuDI specimen extract
    c. Input extract (Pathology DNA/RNA)

Design update:

  1. JSP file meludi_quarter_month_report_generator.jsp in resources/reports/ updated in step 2 with extract source filter menu with three choices, "None" (default), "MeLuDI specimen extract", and "Input extract (Pathology DNA/RNA)".
  2. Javascript file meludi_quarter_month_report_generator.js in resources/reports/ updated in function submit(event) to include selected extract source filter value in the data sent when calling command "meludiquartermonthreport" in servlet MeludiQuarterMonthReportServlet.
  3. Java servlet class/file MeludiQuarterMonthReportServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. New string constants for extract source choices defined.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "meludiquartermonthreport" to obtain extract source filter string from request parameter (default is no filter).
    c. Private method JSONObject createMeludiQuarterMonthReport(DbControl dc, JSONObject json, Date startDate, Date endDate, String viewType, String chartVariant, String projectFocusFilter, Site site) updated with new argument String extractSourceFilter before String projectFocusFilter. The value of the extract source filter is used when finding the case related to an extract, as only parent items of correct subtype will be processed further.
    d. Private method JSONObject createJsonPlot(String chartVariant, Date startDate, Date endDate, String viewType, String projectFocusFilter, Site site) updated with new argument String extractSourceFilter before String projectFocusFilter.
    e. Private method String fetchChartHeaderTitle(String chartVariant, String viewType, String projectFocusFilter, Site site) updated with new argument String extractSourceFilter before String projectFocusFilter. New private method String fetchExtractSourceFilterName(String extractSourceFilter) is called to obtain an extract source filter name to use in the title, where the former is inserted after the project focus name.
    f. New private method String fetchExtractSourceFilterName(String extractSourceFilter) added. It returns an extract source title name for an extract source filter.

comment:6 by olle, 9 years ago

(In [3515]) Refs #815. The "MeLuDI quarter/month report" in the "Sample processing statistics" wizard updated to allow an extract source filter, with the following choices:
a. None
b. MeLuDI specimen extract
c. Input extract (Pathology DNA/RNA)

  1. JSP file meludi_quarter_month_report_generator.jsp in resources/reports/ updated in step 2 with extract source filter menu with three choices, "None" (default), "MeLuDI specimen extract", and "Input extract (Pathology DNA/RNA)".
  2. Javascript file meludi_quarter_month_report_generator.js in resources/reports/ updated in function submit(event) to include selected extract source filter value in the data sent when calling command "meludiquartermonthreport" in servlet MeludiQuarterMonthReportServlet.
  3. Java servlet class/file MeludiQuarterMonthReportServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. New string constants for extract source choices defined.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "meludiquartermonthreport" to obtain extract source filter string from request parameter (default is no filter).
    c. Private method JSONObject createMeludiQuarterMonthReport(DbControl dc, JSONObject json, Date startDate, Date endDate, String viewType, String chartVariant, String projectFocusFilter, Site site) updated with new argument String extractSourceFilter before String projectFocusFilter. The value of the extract source filter is used when finding the case related to an extract, as only parent items of correct subtype will be processed further.
    d. Private method JSONObject createJsonPlot(String chartVariant, Date startDate, Date endDate, String viewType, String projectFocusFilter, Site site) updated with new argument String extractSourceFilter before String projectFocusFilter.
    e. Private method String fetchChartHeaderTitle(String chartVariant, String viewType, String projectFocusFilter, Site site) updated with new argument String extractSourceFilter before String projectFocusFilter. New private method String fetchExtractSourceFilterName(String extractSourceFilter) is called to obtain an extract source filter name to use in the title, where the former is inserted after the project focus name.
    f. New private method String fetchExtractSourceFilterName(String extractSourceFilter) added. It returns an extract source title name for an extract source filter.

comment:7 by olle, 9 years ago

Bug fix:

  • The wizard "Update processed start lists with lot numbers from extracts" in the "Special conversion tools" sub-section of the "Admin" section should update processed start item lists created before MeLuDI v1.3.2 with lot number info taken from the first DNA extract associated with the list. However, no check was performed that the DNA was extracted from a MeLuDI specimen, instead of being an extract source item. The latter items have no extraction and QIAcube lot number information, since they were not extracted in the MeLuDI lab. The routine should therefore be updated to use the first DNA extract, that is not an extract source item.

Design update:

  1. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) for command "UpdateStartListsWithLotNumbersFromExtracts" to use the first DNA extract, that is not an extract source item, when copying lot number information to the start item list.

comment:8 by olle, 9 years ago

(In [3516]) Refs #815. Bug fix: The wizard "Update processed start lists with lot numbers from extracts" in the "Special conversion tools" sub-section of the "Admin" section should update processed start item lists created before MeLuDI v1.3.2 with lot number info taken from the first DNA extract associated with the list. However, no check was performed that the DNA was extracted from a MeLuDI specimen, instead of being an extract source item. The latter items have no extraction and QIAcube lot number information, since they were not extracted in the MeLuDI lab. The routine is therefore updated to use the first DNA extract, that is not an extract source item:

  1. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) for command "UpdateStartListsWithLotNumbersFromExtracts" to use the first DNA extract, that is not an extract source item, when copying lot number information to the start item list.

comment:9 by olle, 9 years ago

Bug fix:

  • The wizard "DNA/RNA registration/quantification" only updates lot numbers for DNA and RNA extracts that were extracted from a MeLuDI specimen, but not extract source items, since they were not extracted in the MeLuDI lab. However, while this is correct for extraction and QIAcube reagents, lot number for quality control reagents should be stored for all extracts in the start item list, since the quality control procedure is performed at the MeLuDI lab.

Design update:

  1. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) for command "RegisterDnaRna" to update lot numbers for quality control reagents for all extracts related to the start item list, including extract source items.

comment:10 by olle, 9 years ago

(In [3517]) Refs #815. Bug fix: The wizard "DNA/RNA registration/quantification" only updates lot numbers for DNA and RNA extracts that were extracted from a MeLuDI specimen, but not extract source items, since they were not extracted in the MeLuDI lab. However, while this is correct for extraction and QIAcube reagents, lot number for quality control reagents should be stored for all extracts in the start item list, since the quality control procedure is performed at the MeLuDI lab:

  1. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated in protected method void doPost(HttpServletRequest req, HttpServletResponse resp) for command "RegisterDnaRna" to update lot numbers for quality control reagents for all extracts related to the start item list, including extract source items. Also removal of some code, that were commented out, and fix of code for special cases, that will normally never occur.

comment:11 by olle, 9 years ago

(In [3518]) Refs #801. Refs #815. Since it may take some time before the list of DNA items from selected start item lists is loaded in step 2 of wizard "Create new start DNA plate", the "Next" button is disabled until the list is loaded, in order to avoid problems:

  1. Javascript file select_dna_for_start_plate.js in resources/libprep/ updated in functions initializeStep2(event) and maxDeltaCtOnChange(event) to disable the "Next" button (both these functions call servlet ExtractionServlet with command "GetListOfItemsFromStartItemLists" and callback function dnaItemListLoaded(response)), while function dnaItemListLoaded(response) is updated to enble the "Next" button again.

comment:12 by olle, 9 years ago

(In [3519]) Refs #801. Refs #815. Wizard "Create new start DNA plate" updated regarding dilution calculation and reporting:
a. The aliquot volume is increased from 10 to 10.5µl, i.e. volume of FPA + FPB from 20 to 21µl.
b. The dilution factor is now calculated from the ΔCt value using a function obtained by fitting an exponential curve to the Illumina step ladder dilution chart, instead of using the latter chart itself. The aim is to avoid large differences in dilution for extracts with ΔCt values on separate sides of a ladder step.
c. Dilution volumes for DNA and water, as well as ΔCt values, are now reported with 2 decimals instead of 1, in order to simplify checking the dilution calculation.

  1. Javascript file select_dna_for_start_plate.js in resources/libprep/ updated:
    a. function getWellText(well)updated by increasing the aliquot volume from 10 to 10.5µl, and report dilution volumes for DNA and water, as well as ΔCt values, with 2 decimals instead of 1.
    b. Function fetchDilutionFactor(deltaCt) updated to calculate the dilution factor from the ΔCt value using a function obtained by fitting an exponential curve to the Illumina step ladder dilution chart, instead of using the latter chart itself.

comment:13 by olle, 9 years ago

(In [3520]) Refs #801. Refs #815. Javascript file select_dna.js in resources/libprep/ updated by change of top function name from "SelectDna" to "SelectDnaRefCode", since the code is currently not active, but left for reference during early development of the library preparation wizards. Javascript file select_dna_for_start_plate.js in resources/libprep/ is based on the former file, and currently has top function name "SelectDna". Function dnaSelected(response) in javascript file auto_select_dna.js in resources/libprep/ calls function SelectDna.dnaSelected(response) in the file, it was called from, which currently is select_dna_for_start_plate.js. The name change avoids misunderstanding of what function in what file is called from auto_select_dna.js.

comment:14 by olle, 9 years ago

Relase of MeLuDI 1.3.3:

  • Since the wizard "Update processed start lists with lot numbers from extracts" in MeLuDI 1.3.2 was found to often fail to successfully update an older start item list with new lot numbers, it was decided to release MeLuDI 1.3.3 as soon as possible. However, instead of being a pure bug fix release, changes already committed will be included.

comment:15 by olle, 9 years ago

(In [3521]) Refs #801. Refs #815. Updates due to version number change to "1.3.3".

  1. Version number change to "1.3.3":
    a. Outermost Ant XML build file build.xml in / updated.
    b. Extensions XML configuration file extensions.xml in META-INF/ updated.
    c. Javascript file meludi-2.js in resources/ updated.
    d. Javascript file samplereportgenerator.js in resources/reports/ updated.
    e. Java class/file Meludi.java in src/net/sf/basedb/meludi/ updated.

comment:16 by olle, 9 years ago

Resolution: fixed
Status: assignedclosed

Ticket closed as MeLuDI version 1.3.3 has been created.

comment:17 by olle, 9 years ago

Milestone: Milestone MeLuDI v1.3.3MeLuDI v1.3.3

Milestone renamed

Note: See TracTickets for help on using tickets.