Interchannel Custom Field(s)

I am trying to define a custom field that will divide the peak height of an analyte on one channel by the peak area of the same analyte but on a different channel. The interchannel examples I was able to locate online won't work because each channel only has one peak whereas the method I am working on has multiple analytes on one of the channels. 

The Label.Injection.Channel(Field) syntax does not work because I also need to define a specific peak, as mentioned above. 

The Label.Injection.Channel.Summary Function(Field) does not work as the summary functions will not provide the result required. 

Is this type of calculation possible within Empower?

Edit: spelling mistake

Best Answers

  • Empower2018
    edited October 2019 Answer ✓
    Interchannel calculations require the channels to be named, otherwise the current channel is used for all peaks.

    Whats the difference between the 2 channels? Wavelength? How did you name the 2 channels? Usually channels are named in the instrument method or as derived channels. Say, for example, you are using Channel A and Channel B tabs in your instrument tab then there will be a name for it, usually in the description box and its typically something like 210nm and 250nm. 

    Put this into your custom field syntax, so you need a label and injection reference too. is this calculation required for each injection? If so, the formula becomes a peak, real, calculated custom field. If you want it done for only one peak, then name the peak and put the field within square brackets after it:

    .%.210*(Caffeine[Height])/.%.250*(Caffeine[Area]) and this will calculate the height divided by area for all injections over the 2 different channels, regardless of label. Obviously if its only needed for certain injections, you can just slot this into the Label.
  • Empower2018
    Hmm....that should have worked for you. Did you definitely reprocess the sample set with the updated method set with the two derived channels in it? Maybe try adding % for the label part of the equation although I cant see it being that, worth a try though. Also, it could be the CCalRef1 that's confusing it over 2 channels. Maybe rewrite the formula to specify the peak name ie Caffeine[Area] or Caffeine[Height]. I cant think of anything else offhand, make sure your derived channels are named exactly like the formula. I have done this before in my lab and they worked fine...good luck.


  • Interesting. My inexperience is showing - I was not aware you could define a field in such a way. 

    The channels differ by wavelength (192 vs 214) and are named MWD.0.0 and MWD0.01, respectively. 

    This is only needed for samples, so I am thinking I can leave the injection as % then control it further in the custom field setting the Sample Type drop down to Unknowns Only.

    Thank you very much for your assistance. I am going to give it a try and then I will be back with an update. 
  • When I follow the syntax you provided, I get an error when I tried to proceed:

    Either a summary type function is missing or it is not immediately followed by a '('.

    I am thinking this is most likely due to the way the channels are named. I will probably have to either rename the channels, or make derived channels, with a different name, correct?
  • Because most channel names can be quite long and awkward to transcribe to a custom field formula, it might be easier to create 2 derived channels and embed these into the method set used to acquire data. So create two derived channels, Single Wavelengths, and call them a simple name like 0 for 192nm and 1 for 214nm, then create two processing methods, identical in all but name so you could use your current processing method and attach that to the 0 channel and create one called PM_214nm and attach that to the 1 channel. Make sure to save your method set and have these derived channels and associated processing methods present when you acquire data. Oh, and you have to actually run or process data when the custom field is created for it to work. It doesn't work "retrospectively" unfortunately. 

    Your error sounds like there are too many periods or brackets and Empower is getting confused. You can have % if you want but I left it out because I presume you are only having 1 injection per unknown, correct? Also, your search order should be result set only, meaning you process a sample set to generate a result set and all results and calculations are stored within the one result set. Ive never once seen a need for a search order other than Result Set Only, in my experience. 

    Going by the above, the custom field now becomes a peak, real, calculated one with sample type of Unknowns Only, Peak Type All. Search Order of Result Set Only. Set All or Nothing to Yes to only include relevant values. Set your peak of interest as CCalRef1 in BOTH processing methods and the formula is:


    If you get another error, it may be because you need to specify the channel names further in inverted commas so:


  • I created new derived channels, each called their respective wavelength. I then made two new PMs, each with the desired peak selected for CCalRef1. Went back and updated the Method Set. Then finally updated the custom field and processed an injection - but the field is empty with no result present. 

    Do I need to acquire a new injection due to the derived channel? Or is reprocessing sufficient?
  • Reprocessing should be sufficient but you need to generate a result set to get the results (as per search order of Result Set Only), so if you process the sample set and Use Specified Method Set, then select your updated method set to process it, when the result set is created, it should have the results in it. Because of All or Nothing, the result you are looking for may only be populated in the second channel. 

  • I have made all of the changes you recommended but I am still not getting it to calculate. Unless you can think of any other suggestions, I am going to go back and quadruple check my work, looking for any mistakes I might have made. Thank you again for your continued support. 
  • I changed the custom field to .%.1(Analyte[Height]) in an attempt to simplify, as well as making the appropriate PM changes. Still didn't work. I reread your comment about result sets and checked to see if there were result sets being generated when I processed injections. And come to find out there wasn't - the way I was processing didn't trigger a result set to generate. Processed a different way, triggered the result set, and also triggered the calculation. Thank you for your help!
  • Glad it worked. Yes, the search order really is critical. In 99% of cases for custom fields, a search order of Result Set Only is fine. Using orders of Result Set First or Outside First can include all previously processed results, and especially with summary functions like AVE, MAX and MIN, you get the results from every channel in the project which is hardly every what you are looking for. 

    You could change the formula back to (.%.1(CCalRef1[Height])/.%.1(CCalRef1[Area])) and set CCalRef1 to your active peak in both processing methods. The easiest way to generate a result set is to right click the sample set, Process and in the box that follows, tick the Clear Calibration and select "Use Acquisition Method Set" which automatically processes the data with the method set used to acquire the injections, and extracts the 2 single wavelengths as per the two derived channels and associated processing methods embedded in the method sets. Of course if the custom field doesn't exist yet and needs to apply for acquired sample sets, simply create the custom field/derived channels and when processing the sample set, select the option "Use specified method set" and choose your method set.