Generation of Targeted SOPs

To create a new pre-defined TargetLynx SOP (fileType == 'TargetLynx') the JSON SOP must contain the following fields, the list must cover all compounds in the same order:

  • methodName

    The name of the method.

  • chromatography

    The chromatography employed.

  • ionisation

    The polarity employed.

  • compoundID

    A list of numeric ID (“1”,”2”,…) that matches the TargetLynx compound ID.

  • compoundName

    A list of compound names.

  • IS

    A list of “True” “False” to indicate if the compound is an Internal Standard.

  • unitFinal

    A list of the compound measurement unit after application of the unitCorrectionFactor (can be left blank “”).

  • unitCorrectionFactor

    A list of values by which to multiply the measured concentration in order to reach the unitFinal (“1”,”0.1”,”1000”).

  • calibrationMethod

    A list of the calibration method employed for the compound, from enum CalibrationMethod: "noIS" for compounds without Internal Standard (and Internal Standards themselves) = (use area), "backcalculatedIS" for compounds using an Internal Standard = (use response), "noCalibration" for compounds not quantified (Monitored for relative information).

  • calibrationEquation

    A list of equations to obtain the concentration given \(area\), \(responseFactor\), \(a\) and \(b\). responseFactor = (IS conc/IS Area)=response/Area (for noIS, responseFactor will be 1) is automatically estimated from calibration samples.

    The calibration equation is only employed if values <LLOQ are replaced by the noise level (TargetedDataset._targetLynxApplyLimitsOfQuantificationNoiseFilled())

    Calibration curve in TargetLynx is defined/established as: response = a * concentration + b (eq. 1)
    • response is defined as: response = Area * (IS conc / IS Area) (eq. 2) [for ‘noIS’ response = Area]
    • using eq. 2, we can approximate the ratio IS Conc/IS Area in a representative sample as: responseFactor = response / area (eq. 3)
    • Therefore: concentration = ((area*responseFactor) - b) / a (eq. 4)
    • If in TargetLynx ‘axis transformation’ is set to log (but still use ‘Polynomial Type’=linear and ‘Fit Weighting’=None)
    • eq.1 is changed to: log(response) = a * log(concentration) + b (eq. 5)
    • and eq. 4 changed to: concentration = 10^( (log(area*responseFactor) - b) / a ) (eq. 5)
    • Examples: "((area * responseFactor)-b)/a", "10**((numpy.log10(area * responseFactor)-b)/a)", "area/a" | if b not needed, set to 0 in csv [use for linear noIS, area=response, responseFactor=1, and response = a * concentration ]
  • quantificationType

    A list of the type of quantification employed, from enum QuantificationType: "IS", "QuantOwnLabeledAnalogue", "QuantAltLabeledAnalogue", "QuantOther" or "Monitored"

    Note

    quantificationType "IS" must match with IS "True". quantificationType "Monitored" must match with calibrationMethod "noCalibration".

  • externalID

    A list of external ID, each external ID must also be present as its own field as a list of identifier (for that external ID). For example, if "externalID":["PubChem ID"], the field "PubChem ID":["ID1","ID2","","ID75"]" is required.

  • sampleMetadataNotExported

    A list of sampleMetadata columns to exclude from export and reports.

  • featureMetadataNotExported

    A list of featureMetadata columns to exclude from export and reports.

Example TargetLynx SOP for the Amino Acids assay (Gray N. et al. Human Plasma and Serum via Precolumn Derivatization with 6‑Aminoquinolyl‑N‑hydroxysuccinimidyl Carbamate: Application to Acetaminophen-Induced Liver Failure. Analytical Chemistry, 89, 2017, 2478−2487)
{
	"methodName":"NPC LC-MS Targeted - Amino Acid",
	"chromatography":"R",
	"ionisation":"POS",
	"compoundID": ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73"],
	"compoundName": ["4-Hydroxyproline","Alanine","Alanine-13C3-15N","Arginine","Arginine-13C6-15N4","Aspartic acid","Aspartic acid-13C4-15N","Asparagine","Carnosine","Cystine","Ethanolamine","Glutamic acid","Glutamic acid-13C5-15N","Glutamine","Glutamine-13C5","Glycine","Glycine-13C2-15N","Histidine","Histidine-13C6-15N3","Isoleucine","Isoleucine-13C6-15N","Leucine","Leucine-13C6-15N","Lysine","Lysine-13C6-15N2","Methionine","Methionine-13C5-15N","Phenylalanine","Phenylalanine-13C9-15N","Proline","Proline-13C5-15N","Serine","Serine-13C3-15N","Threonine","Threonine-13C4-15N","Tryptophan","Tyrosine","Valine","Valine-13C5-15N","beta-Amino-iso-Butyric acid","Citrulline","Cystathionine","3-Methylhistidine","1-Methylhistidine","Homoserine","Hydroxylysine","Ornithine","Aminoadipic acid","alpha-Amino-n-Butyric acid","Phosphoserine","Sarcosine","Taurine","beta-Alanine","gamma-Amino-n-Butyric acid","Methylamine","Creatine","4-Aminohippuric acid","5-Aminovaleric acid","Allantoin","Anserine","Cysteine","Epinephrine","Galactosamine","Glutathione","Homocystine","N-methyl-L-phenylalanine","N-methyl-valine","Octopamine","Putrescine","Tryptamine","Tyramine","Tyrosine-13C9-15N","Glycylglycine"],
	"IS": ["False","False","True","False","True","False","True","False","False","False","False","False","True","False","True","False","True","False","True","False","True","False","True","False","True","False","True","False","True","False","True","False","True","False","True","False","False","False","True","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","False","True","False"],
	"unitFinal":["\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","\u00B5M","noUnit","noUnit","noUnit","noUnit","noUnit","noUnit","noUnit","noUnit","noUnit","noUnit","noUnit","noUnit","noUnit","noUnit","noUnit","noUnit","noUnit","\u00B5M","noUnit"],
	"unitCorrectionFactor": ["1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1"],
	"calibrationMethod": ["backcalculatedIS","backcalculatedIS","noIS","backcalculatedIS","noIS","backcalculatedIS","noIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","noIS","backcalculatedIS","noIS","backcalculatedIS","noIS","backcalculatedIS","noIS","backcalculatedIS","noIS","backcalculatedIS","noIS","backcalculatedIS","noIS","backcalculatedIS","noIS","backcalculatedIS","noIS","backcalculatedIS","noIS","backcalculatedIS","noIS","backcalculatedIS","noIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","noIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","backcalculatedIS","noCalibration","noCalibration","noCalibration","noCalibration","noCalibration","noCalibration","noCalibration","noCalibration","noCalibration","noCalibration","noCalibration","noCalibration","noCalibration","noCalibration","noCalibration","noCalibration","noCalibration","noIS","noCalibration"],
	"calibrationEquation": ["((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","((area * responseFactor)-b)/a","","","","","","","","","","","","","","","","","","",""],
	"quantificationType": ["QuantAltLabeledAnalogue","QuantOwnLabeledAnalogue","IS","QuantOwnLabeledAnalogue","IS","QuantOwnLabeledAnalogue","IS","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantOwnLabeledAnalogue","IS","QuantOwnLabeledAnalogue","IS","QuantOwnLabeledAnalogue","IS","QuantOwnLabeledAnalogue","IS","QuantOwnLabeledAnalogue","IS","QuantOwnLabeledAnalogue","IS","QuantOwnLabeledAnalogue","IS","QuantOwnLabeledAnalogue","IS","QuantOwnLabeledAnalogue","IS","QuantOwnLabeledAnalogue","IS","QuantOwnLabeledAnalogue","IS","QuantOwnLabeledAnalogue","IS","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantOwnLabeledAnalogue","IS","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","QuantAltLabeledAnalogue","Monitored","Monitored","Monitored","Monitored","Monitored","Monitored","Monitored","Monitored","Monitored","Monitored","Monitored","Monitored","Monitored","Monitored","Monitored","Monitored","Monitored","IS","Monitored"],
	"externalID":[],
	"sampleMetadataNotExported":["TargetLynx Sample ID", "MassLynx Row ID", "Acqu Date", "Acqu Time", "Instrument", "Sample Type"],
	"featureMetadataNotExported":["calibrationEquation", "TargetLynx Feature ID", "unitCorrectionFactor", "CpdInfo", "Cpd Info", "Noise (area)", "a", "b", "r", "r2", "r^2", "# left", "Excluded"],
	"analyticalMeasurements":{"Study" : "categorical", "Instrument" : "categorical", "Re-Run" : "categorical", "Suplemental Injections" : "categorical", "Matrix" : "categorical", "Well" : "categorical", "Plate" : "categorical", "Batch" : "categorical", "Dilution" : "continuous", "Measurement Date" : "date", "Measurement Time" : "date", "Acquired Time" : "date", "Run Order" : "continuous", "Correction Batch" : "categorical", "Assay data name": "categorical", "Assay data location": "categorical", "Sample position": "categorical", "Sample batch": "categorical", "Acquisition batch": "categorical", "Plot Sample Type": "categorical", "AssayRole": "categorical", "SampleType": "categorical", "Exclusion Details": "categorical", "Skipped": "categorical", "Assay protocol": "categorical"},
	"excludeFromPlotting":["Sample File Name", "Sample Base Name", "Batch Termini", "Study Reference", "Long-Term Reference", "Method Reference", "Dilution Series", "Skipped", "Study Sample", "File Path", "Exclusion Details", "Assay protocol", "Status", "Measurement Date", "Measurement Time", "Data Present", "LIMS Present", "LIMS Marked Missing", "Assay data name", "Assay data location", "AssayRole", "SampleType", "Sampling ID", "Plot Sample Type", "SubjectInfoData", "Detector Unit", "TargetLynx Sample ID", "MassLynx Row ID"]
}