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:
methodNameThe name of the method.
chromatographyThe chromatography employed.
ionisationThe polarity employed.
compoundIDA list of numeric ID (“1”,”2”,…) that matches the TargetLynx compound ID.
compoundNameA list of compound names.
ISA list of “True” “False” to indicate if the compound is an Internal Standard.
unitFinalA list of the compound measurement unit after application of the unitCorrectionFactor (can be left blank “”).
unitCorrectionFactorA list of values by which to multiply the measured concentration in order to reach the unitFinal (“1”,”0.1”,”1000”).
calibrationMethodA 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).
calibrationEquationA 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 ]
- response is defined as:
- Calibration curve in TargetLynx is defined/established as:
quantificationTypeA 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".
externalIDA 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.
sampleMetadataNotExportedA list of
sampleMetadatacolumns to exclude from export and reports.
featureMetadataNotExportedA list of
featureMetadatacolumns to exclude from export and reports.
{
"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"]
}