How to ... align uncalibrated peaks in 2 or more signals

Version 1

    Use case

    2 signals; DAD and MSD TIC with many uncalibrated/unknown peaks.



    How to print UV and MS peak apex spectra for each pair of corresponding peaks


    Due to the setup of detectors, the MS signals are shifted and the retention times could not be used to identify corresponding pairs of peaks.   Even after correcting the retention time shifts the numbers do not match precisely and results of two corresponding peaks cannot reported together.



    Since retention times do not match precisely, the retention time values can be rounded to such an extend that the rounded retention times become equal for both corresponding peaks.


    • Drag a peak result table, a UV spectra plot and a MS plot on the template
    • Select these 3 items and combine them in a new group


    The definition of the group repetition will take care of the alignment, similar to the retention time windows in an peak identification table

    =Peak_RetentionTime   (repeats the result per individual peak retention times)

    =(1/60)*int(60*Peak_RetentionTime)  (repeats the result per peak retention times rounded to 1 sec)

    =(1/n)*int(n*60*Peak_RetentionTime)  (repeats the result per peak retention times rounded to n sec)


    By introducing a report parameter n (granularity factor, time window), the user could modify the granularity of the peak alignment in the  report preview.  This is likely a method specific parameter that needs to be adjusted. Once a suitable value is found, the report parameter could be hidden to the template user.


    The approach described above generates a fix time window for peak recognition and does not take the increasing peak width over run times into account. Adding the peak width as an additional factor could take this effect into account.


    In case of larger signal shifts, the alignment of the peak results might be achieved by an IIF condtion in the group repetition expression.


    The following expression is just an example and has not been tested, yet:




    (originally posted in OpenLAB Forum:

    2015 May 4 by Bernhard Etrich)