Solution 3

A possible solution can also be to identify the pairs of injection with the help of a sample custom field.

For example, create a Sample Custom parameter Spike_Sample in the Control Panel. Enter the sample name of its corresponding unspiked sample. You enter "" if the injection is not a spiked injection.

  • Scope: Peak or Group

  • Type: Double

  • Formula:

    IF(CurrentSample.GetCustomField("Spike_Sample")<>””, (CurrentSequence.AllInjectionsBySampleName(CurrentSample.GetCustomField("Spike_Sample")).First().AllPeaksAndGroupsByName(Compound_Name).first().Compound_Amount - Compound_Amount)/ CurrentPeakOrGroup .GetCustomField(“SpikedAmount”)*100, "")

Explanation of the formula:

Part of equation (highlighted)

Description

IF(CurrentSample.GetCustomField("Spike_Sample")<>””, (CurrentSequence.AllInjectionsBySampleName(CurrentSample.GetCustomField("Spike_Sample")).First().AllPeaksAndGroupsByName(Compound_Name).first().Compound_Amount - Compound_Amount)/ CurrentPeakOrGroup .GetCustomField(“SpikedAmount”)*100, "")

Means the computation is done for Spiked samples only (Spike_Sample not empty)

IF(CurrentSample.GetCustomField("Spike_Sample")<>””, (CurrentSequence.AllInjectionsBySampleName(CurrentSample.GetCustomField("Spike_Sample")).First().AllPeaksAndGroupsByName(Compound_Name).first().Compound_Amount - Compound_Amount)/ CurrentPeakOrGroup .GetCustomField(“SpikedAmount”)*100, "")

Select the injections which sample_name has the correct name. This name must be unique so that taking the first works as expected.

IF(CurrentSample.GetCustomField("Spike_Sample")<>””, (CurrentSequence.AllInjectionsBySampleName(CurrentSample.GetCustomField("Spike_Sample")).First().AllPeaksAndGroupsByName(Compound_Name).first().Compound_Amount - Compound_Amount)/ CurrentPeakOrGroup .GetCustomField(“SpikedAmount”)*100, "")

Select the compounds that have the same name as the current one and take the first. Since there is only one, it returns the right peak.