Ignore
All
ByName
es+
es+
es-
es-
product_type
ParseComplex
product_type
Warn
eln_id_Matched
[product_id] != "chem_312"
Custom
[product_id] != "chem_312"
tailored analysis
Simple
Contains
plate_id
True
fixed
2022-04-04 08:47:00
0
ay
2022-04-04 08:47:00
2022-04-04 08:47:00
Contains([plate_id],"ay")
(Contains([Product_Type], "PotProd") AND
Contains([Product_ID], "PP_1") AND
!Contains([Product_ID], "PP_2") AND
!Contains([Product_ID], "PP_3")) OR
[Product_Type] = "refprod (P+118)" OR
[Product_Type] = "refprod (P+40)" OR
[Product_Type] = "refprod (P+54)" OR
[Product_Type] = "refprod (P+56)" OR
[Product_Type] = "refprod (P+70)" OR
[Product_Type] = "refprod (P+82)"
Custom
Monoalkylation
(Contains([Product_Type], "PotProd") AND
Contains([Product_ID], "PP_1") AND
!C...
Custom
Dialkylation
(Contains([Product_Type], "PotProd") AND
!Contains([Product_ID], "PP_1") AND
C...
Simple
=
Product_Type
True
fixed
2022-04-04 13:09:17
0
StMat (P+0)
2022-04-04 13:09:17
2022-04-04 13:09:17
Starting Material
[Product_Type] = "StMat (P+0)"
Warning
All
ByName
Contains([Product_Type], "PotProd") AND
!Contains([Product_ID], "PP_1") AND
!Contains([Product_ID], "PP_2") AND
Contains([Product_ID], "PP_3")
Custom
Trialkylation
Contains([Product_Type], "PotProd") AND
!Contains([Product_ID], "PP_1") AND
!C...
Warning
All
ByName
rxn data prep for surf
False
False
"eln_id","plate_no","plate_id","ipc_no","well","mono_alkylation","di_alkylation"
True
True
True
False
False
False
False
False
False
upper
output: visualization
\data_package\lcms_analysis\04_output_data\visualization_1.tsv
CRLF
\t
Never
True
28591
True
generate surf file output
visualization_1.tsv
\data_package\lcms_analysis\04_output_data\visualization_2.tsv
CRLF
\t
Never
True
28591
True
generate surf file output
visualization_2.tsv
\data_package\lcms_analysis\04_output_data\visualization_3.tsv
CRLF
\t
Never
True
28591
True
generate surf file output
visualization_3.tsv
\data_package\lcms_analysis\04_output_data\visualization_4.tsv
CRLF
\t
Never
True
28591
True
generate surf file output
visualization_4.tsv
\data_package\lcms_analysis\04_output_data\visualization_5.tsv
CRLF
\t
Never
True
28591
True
generate surf file output
visualization_5.tsv
unidentified products
add plate_id, split well in row and column
well
ParseComplex
well
Warn
eln_id_Matched
output: surf
generate rxn_id
rxn_id = [eln_id]+"_"+[plate_no]+"_"+[ipc_no]+"_"+[well]
rxn_type = "alkylation"...
\data_package\lcms_analysis\04_output_data\surf.tsv
CRLF
\t
Never
True
28591
True
generate surf file output
surf.tsv
input | lcms_analysis | 02_structured_lcms_data
\data_package\lcms_analysis\02_structured_lcms_data\sample_id.csv
True
False
False
1
254
False
DoubleQuotes
,
False
28591
sample_id.csv
\data_package\lcms_analysis\02_structured_lcms_data\channels.csv
True
False
False
1
254
False
DoubleQuotes
,
False
28591
channels.csv
\data_package\lcms_analysis\02_structured_lcms_data\masses.csv
True
False
False
1
254
False
DoubleQuotes
,
False
28591
masses.csv
filtered experiments
identified products
Ignore
All
ByName
MS_Channel = IF [mass_id] = "obs_ma" THEN "MS_ID"
ELSEIF [mass_id] = "mim_ma" T...
Well = Uppercase([Well])
Well_Row = Uppercase([Well_Row])
chem_id = IF contains(...
add plate_id, split well in row and column
well
ParseComplex
well
Warn
eln_id_Matched
eln_id - Ascending
plate_no - Ascending
ipc_no - Ascending
well_row - Ascending
...
unidentified products
Warning
All
ByName
es-
data for all masses
data for all masses
generate mass_diff with mass_sign
mass_diff = IF [mass_sign] = "+" THEN [mass_sign]+[mass_diff]
ELSE [mass_diff] ...
change data type of mass_diff (to create + prefix for mass_diff)
calculate mass difference (mass - stmat_mass), determine mass_sign (+/-)
mass_diff = round(([mass]-1)-[stmat_mim], 1)
mass_sign = IF [mass_diff] > 0 THEN...
add mim of starting material to dataset
add mim of starting material to dataset
sort by sample_id (asc), well (asc), peak_id (asc) and mass_int (des) to prepare for unique tool (only keep peak match with highest mass intensity)
sample_id - Ascending
well - Ascending
peak_id - Ascending
mass_int - Descending
single row for one peak
single row for one peak
removal of mass_int
removal of mass_int
UniqueValue
create mass_int_rank
create mass_int_rank
remove duplicates
remove duplicates
stmat info
es+
add mim of starting material to dataset
add mim of starting material to dataset
calculate mass difference (mass - stmat_mass), determine mass_sign (+/-)
mass_diff = round(([mass]-1)-[stmat_mim], 1)
mass_sign = IF [mass_diff] > 0 THEN...
change data type of mass_diff (to create + prefix for mass_diff)
generate mass_diff with mass_sign
mass_diff = IF [mass_sign] = "+" THEN [mass_sign]+[mass_diff]
ELSE [mass_diff] ...
single row for one peak
single row for one peak
remove unrequired columns
data for all masses
sort by sample_id (asc), well (asc), peak_id (asc) and mass_int (des) to prepare for unique tool (only keep peak match with highest mass intensity)
sample_id - Ascending
well - Ascending
peak_id - Ascending
mass_int - Descending
removal of mass_int
removal of mass_int
UniqueValue
create mass_int_rank
create mass_int_rank
remove duplicates
remove duplicates
generate product_id for up
filter out duplicate matching from es+ and es-
sort by sample_id, peak_id, rt (asc), and ms id, reliability and ionization rank (asc)
eln_id - Ascending
sample_id - Ascending
well - Ascending
peak_id - Ascending
...
add number values for ms reliability, id and ionization to allow sorting
ms_ion = IF [ionization] = "ES-" THEN "Z"
ELSE "A" ENDIF
chem_role = "unidprod"...
summarize by experiment_id, rt and mass_diff to obtain unique unidentified products
Summarize by Experiment_ID, RT_UV and Mass_diff to obtain unique unidentified products
UniqueValue
generate individual id for each experiment and each unique product (categories from summarize)
Generate individual ID for each experiment and each unique product (categories from summarize)
experiment_id
Last
ELN
split experiment_id to obtain eln and plate_no for product_id assembly
Split Experiment_ID to obtain ELN and Plate_No for Product_ID assembly
remove unrequired tile_num, change data type of tile_seq to string
Remove unrequired Tile_Num, change data type of Tile_Seq to V_WString
remove tile_sequence
Remove Tile_Sequence
add product_id
all masses in peak
generate mass intensity value
all masses in peak
generate mass intensity value
Warning
All
ByName
reaction input, matched peaks removed
es+
es+
chemform/mim
chemform/mim
es-
es-
reaction input
chemform/mim
es+
es-
split into obs, es+ and es- channels
Simple
=
mass_int
True
fixed
2022-11-08 16:18:12
0
120
2022-11-08 16:18:12
2022-11-08 16:18:12
separate channels matched chemform (mass_int = 120)
[mass_int] = 120
Simple
=
ionization
True
fixed
2022-11-08 16:28:23
0
ES+
2022-11-08 16:28:23
2022-11-08 16:28:23
separate es+ and es-
[ionization] = "ES+"
potential products
Warning
All
ByName
union es+ and es- matching
remove duplicate peaks with same mass, rt and different area_abs (only largest area)
remove duplicate peaks with same mass, rt and different area_abs (only largest area)
sort by sample_id, peak_id, rt (asc), and ms id, reliability, ionization rank (asc) and abs_area (des)
eln_id - Ascending
sample_id - Ascending
well - Ascending
peak_id - Ascending
...
add number values for ms reliability, id and ionization to allow sorting
ms_reliability_rank = IF [ms_reliability] = "high" THEN 1
ELSEIF [ms_reliabilit...
remove ranking information for further processing
es+ matching - finalized
Warning
All
ByName
union all matched peaks
union all matched peaks
double-check to remove potential duplicates
es+ reliability categories
mass
remove unrequired columns
remove unrequired columns
Simple
=
mass_match
True
fixed
2022-11-11 16:22:00
0
1
2022-11-11 16:22:00
2022-11-11 16:22:00
filter for the mass that was matched using [mass_match] = "1"
[mass_match] = "1"
depending on ms_int set ms_reliability to"high" (>=80), "medium" (>= 50) or "low" (<50)
ms_reliability = IF [mass_int] >= 80 THEN "high"
ELSEIF [mass_int] >= 50 THEN "...
remove numerous headers to keep dataset compact for further processing
remove numerous headers to keep dataset compact for further processing
mass + mim
remove unrequired columns
remove unrequired columns
remove numerous headers to keep dataset compact for further processing
remove numerous headers to keep dataset compact for further processing
Simple
=
mass_match
True
fixed
2022-11-11 16:22:00
0
1
2022-11-11 16:22:00
2022-11-11 16:22:00
filter for the mass that was matched using [mass_match] = "1"
[mass_match] = "1"
observed + mass
remove unrequired columns
remove unrequired columns
Simple
=
mass_match
True
fixed
2022-11-11 16:22:00
0
1
2022-11-11 16:22:00
2022-11-11 16:22:00
filter for the mass that was matched using [mass_match] = "1"
[mass_match] = "1"
remove numerous headers to keep dataset compact for further processing
remove numerous headers to keep dataset compact for further processing
observed
remove unrequired columns
remove unrequired columns
remove numerous headers to keep dataset compact for further processing
remove numerous headers to keep dataset compact for further processing
es+ check loops
check for mim in mass spectrum
check if in addition to es+ mass match, the mim was found in peak
check if in addition to es+ mass match, the mim was found in peak
transfer mim match information to full peak information (join), es+ matches without mim matching (l)
remove multiple matches per peak
remove multiple matches per peak
connection with observed mass channels
check if the es+ peak was also matched in the mim/obs channel
[chemform] = [chemform_found]
Custom
true if chemform = chemform_found
[chemform] = [chemform_found]
tagging - potential products
generate mass ranges
calculate mim+1 and mim-1, followed by mim min/max, mim+1 min/max and mim-1 min/max
mim = Round([mim], 0.1)
mim_min = [mim]-0.3
mim_max = [mim]+0.3
[m+h]+ = [mim]+1...
es+
area
FixedDecimal
19.1
[m+h+_min]
[Area]<=[m+h+_max]
[area] + 0.1
m+h+ ranges (+/- 0.5 da)
M+H+ Ranges Generator
es-
area
FixedDecimal
19.1
[m-h-_min]
[Area]<=[m-h-_max]
[area] + 0.1
m-h- ranges (+/- 0.5 da)
m-h- ranges (+/- 0.5 da)
mim
area
FixedDecimal
19.1
[mim_min]
[Area]<=[mim_max]
[area] + 0.1
mim ranges (+/- 0.3 da)
mim ranges (+/- 0.3 da)
chemform
input: lsf platform - potref products library
Simple
=
role
True
fixed
2024-02-16 15:42:29
0
potproduct
2024-02-16 15:42:29
2024-02-16 15:42:29
[role] = "potproduct"
\data_package\potential_products\pot_products_output.csv
True
False
False
1
254
False
DoubleQuotes
,
False
28591
pot_products_output.csv
[well] = "h96" OR
[well] = "d48" OR
[well] = "d24"
Custom
filter out potproducts where potproducts are applicable for all positions on the plate
[well] = "h96" OR
[well] = "d48" OR
[well] = "d24"
96-well plate
Alph increm
String
4
[Row_Start]
[Alph increm] <= [Row_End]
CharFromInt(CharToInt([Alph increm])+1)
alphabetic increment 96-well plate (A-H)
Generate Alphabetic Increment for Rows of 96-well plate
deselect start_row and end_row
deselect start_row and end_row
add column 1
RowCount
Int32
4
1
RowCount <= 12
RowCount + 1
generate numeric increment for 96-well plate (1-12)
Generate Numeric Increment for 24-well plate (1-6)
remove unwanted columns
remove unwanted columns
insert row start (A) and row end (H) for 96-well plate
24-well plate
Alph increm
String
4
[Row_Start]
[Alph increm] <= [Row_End]
CharFromInt(CharToInt([Alph increm])+1)
alphabetic increment 24-well plate (A-D)
Generate Alphabetic Increment for Rows of 96-well plate
deselect start_row and end_row
deselect start_row and end_row
add column 1
RowCount
Int32
4
1
RowCount <= 6
RowCount + 1
generate numeric increment for 24-well plate (1-6)
Generate Numeric Increment for Columns of 96-well plate (1-12)
remove unwanted columns
remove unwanted columns
insert row start (A) and row end (D) for 24-well plate
change date type and rename new column
change date type and rename new column
Simple
=
well
True
fixed
2022-11-15 17:17:32
0
d24
2022-11-15 17:17:32
2022-11-15 17:17:32
split between 24- and 96-well plate
[well] = "d24"
Simple
=
well
True
fixed
2022-11-15 17:18:10
0
h96
2022-11-15 17:18:10
2022-11-15 17:18:10
[well] = h96
Warning
All
ByName
filter only for relevant potproducts based on experiment_ids
es- matching - finalized
Warning
All
ByName
union all matched peaks
union all matched peaks
double-check to remove potential duplicates
double-check to remove potential duplicates
es- check loops
check for mim in mass spectrum
check if in addition to es- mass match, the mim was found in peak
check if in addition to es- mass match, the mim was found in peak
transfer mim match information to full peak information (join), es- matches without mim matching (l)
transfer mim match information to full peak information (join), es- matches without mim matching (l)
remove multiple matches per peak
remove multiple matches per peak
connection with observed mass channels
check if the es- peak was also matched in the mim/obs channel
check if the es+ peak was also matched in the mim/obs channel
[chemform] = [chemform_found]
Custom
true if chemform = chemform_found
[chemform] = [chemform_found]
es- reliability categories
mass
remove unrequired columns
remove unrequired columns
Simple
=
mass_match
True
fixed
2022-11-11 16:22:00
0
1
2022-11-11 16:22:00
2022-11-11 16:22:00
filter for the mass that was matched using [mass_match] = "1"
[mass_match] = "1"
depending on ms_int set ms_reliability to"high" (>=80), "medium" (>= 50) or "low" (<50)
ms_reliability = IF [mass_int] >= 80 THEN "high"
ELSEIF [mass_int] >= 50 THEN "...
remove numerous headers to keep dataset compact for further processing
remove numerous headers to keep dataset compact for further processing
mass + mim
remove unrequired columns
remove unrequired columns
remove numerous headers to keep dataset compact for further processing
remove numerous headers to keep dataset compact for further processing
Simple
=
mass_match
True
fixed
2022-11-11 16:22:00
0
1
2022-11-11 16:22:00
2022-11-11 16:22:00
filter for the mass that was matched using [mass_match] = "1"
[mass_match] = "1"
observed + mass
remove unrequired columns
remove unrequired columns
Simple
=
mass_match
True
fixed
2022-11-11 16:22:00
0
1
2022-11-11 16:22:00
2022-11-11 16:22:00
filter for the mass that was matched using [mass_match] = "1"
[mass_match] = "1"
remove numerous headers to keep dataset compact for further processing
remove numerous headers to keep dataset compact for further processing
add mass_diff for references
mass_diff = IF contains([product_id], "ref_1") THEN "P+82"
ELSEIF contains([pro...
include product_type, chem_id and product_name through product_id
include product_type, chem_id and product_name through product_id
product_type
ParseComplex
product_type
Warn
eln_id_Matched
extract mass_diff from product_type
extract mass_diff from product_type
es+ matching
es+ match (reaction data mass with potential product mass range)
es+ match
only keep peak match with highest mass intensity
sort by sample_id (asc), well (asc), peak_id (asc) and mass_int (des) to prepare for unique tool (only keep peak match with highest mass intensity)
sample_id - Ascending
well - Ascending
peak_id - Ascending
mass_int - Descending
full mass pattern of tags
create additional column "mass_match" to indicate line of peak, which was matched. calculate mass difference between measured mass and exact mass.
Ignore
All
ByName
remove exact_mass as it is not further needed
remove exact_mass as it is not further needed
UniqueValue
add mass_int_ranking through unique tile
add mass_int_ranking through unique tile
sort data by sample_id, peak_id, rt (all asc) and mass_int (des) to add mass_int_ranking (next operation, tile)
eln_id - Ascending
sample_id - Ascending
experiment_id - Ascending
exp_no - Ascending
...
remove tile_seq and rename tile_seq_num to mass_int_rank
remove tile_seq and rename tile_seq_num to mass_int_rank
obtain additional masses from peak, where a mass was matched
mim/observed matching
mim match
mim match
chemform match
chemform match
chemform_mim match
chemform_mim match
only mim match
only mim match
only chemform match
only chemform match
abs([mim_exact]-[mass]) <= 0.2
Custom
abs([mim_exact]-[mass]) <= 0.2
Ignore
All
ByName
union all streams (only mim match, chemform_mim match and only chemform match)
union all streams (only mim match, chemform_mim match and only chemform match)
tag with "obs" and calculate mass difference between exact mass and found mass
[chemform] = [chemform_found]
Custom
true if matched chemform is equel with chemform_found
[chemform] = [chemform_found]
remove chemform
remove chemform
remove potential duplicate rows
es- matching
es- match (reaction data mass with potential product mass range)
es- match
only keep peak match with highest mass intensity
only keep peak match with highest mass intensity
sort by sample_id (asc), well (asc), peak_id (asc) and mass_int (des) to prepare for unique tool (only keep peak match with highest mass intensity)
sample_id - Ascending
well - Ascending
peak_id - Ascending
mass_int - Descending
full mass pattern of tags
create additional column "mass_match" to indicate line, which was matched. calculate mass difference between measured mass and exact mass.
Ignore
All
ByName
union stream with matched mass from peak with all other masses found in the peak
union stream with matched mass from peak with all other masses found in the peak
remove exact_mass as it is not further needed
remove exact_mass as it is not further needed
UniqueValue
add mass_int_ranking through unique tile
sort data by sample_id, peak_id, rt (all asc) and mass_int (des) to add mass_int_ranking (next operation, tile)
sort data by sample_id, peak_id, rt (all asc) and mass_int (des) to add mass_int_ranking (next operation, tile)
eln_id - Ascending
sample_id - Ascending
experiment_id - Ascending
exp_no - Ascending
...
remove tile_seq and rename tile_seq_num to mass_int_rank
remove tile_seq and rename tile_seq_num to mass_int_rank
obtain additional masses from peak, where a mass was matched
obtain additional masses from peak, where a mass was matched
add individual product_id to products via experiment_id, product_type and rt
add individual product_id to products via experiment_id, product_type and rt
generate product_id for same potential products in experiment
determine unique products with same RT and Product Type (Mass change)
determine unique products with same RT and Product Type (Mass change)
UniqueValue
Generate individual id for each experiment and each unique product (categories from summarize)
Generate individual ID for each experiment and each unique product (categories from summarize)
remove unrequired Tile_Num, change data type of Tile_Seq to V_WString
remove unrequired Tile_Num, change data type of Tile_Seq to V_WString
remove Tile_Sequence
Remove Tile_Sequence
generate individual (potential) product_id
connect lcms raw data, change data types, remove lc noise
convert method into number
method = IF [method] = "gradient" THEN "6"
ELSEIF method = "plate_login" THEN "...
[rt] >= 0.25
Custom
[rt] >= 0.25
matched peaks (potproduct matching)
Warning
All
ByName
Warning
All
ByName
potential products
Warning
All
ByName
union es+ and es- matching
filter out duplicate matching from es+ and es-
filter out duplicate matching from es+ and es-
sort by sample_id, peak_id, rt (asc), and ms id, reliability and ionization rank (asc)
eln_id - Ascending
sample_id - Ascending
well - Ascending
peak_id - Ascending
...
add number values for ms reliability, id and ionization to allow sorting
ms_reliability_rank = IF [ms_reliability] = "high" THEN 1
ELSEIF [ms_reliabilit...
remove ranking information for further processing
remove ranking information for further processing
es+ matching - finalized
Warning
All
ByName
union all matched peaks
union all matched peaks
es+ reliability categories
mass
remove unrequired columns
remove unrequired columns
Simple
=
mass_match
True
fixed
2022-11-11 16:22:00
0
1
2022-11-11 16:22:00
2022-11-11 16:22:00
filter for the mass that was matched using [mass_match] = "1"
[mass_match] = "1"
depending on ms_int set ms_reliability to"high" (>=80), "medium" (>= 50) or "low" (<50)
ms_reliability = IF [mass_int] >= 80 THEN "high"
ELSEIF [mass_int] >= 50 THEN "...
remove numerous headers to keep dataset compact for further processing
remove numerous headers to keep dataset compact for further processing
mass + mim
remove unrequired columns
remove unrequired columns
remove numerous headers to keep dataset compact for further processing
remove numerous headers to keep dataset compact for further processing
Simple
=
mass_match
True
fixed
2022-11-11 16:22:00
0
1
2022-11-11 16:22:00
2022-11-11 16:22:00
filter for the mass that was matched using [mass_match] = "1"
[mass_match] = "1"
observed + mass
remove unrequired columns
Simple
=
mass_match
True
fixed
2022-11-11 16:22:00
0
1
2022-11-11 16:22:00
2022-11-11 16:22:00
filter for the mass that was matched using [mass_match] = "1"
[mass_match] = "1"
remove numerous headers to keep dataset compact for further processing
observed
remove unrequired columns
remove numerous headers to keep dataset compact for further processing
es+ check loops
check for mim in mass spectrum
check if in addition to es+ mass match, the mim was found in peak
check if in addition to es+ mass match, the mim was found in peak
transfer mim match information to full peak information (join), es+ matches without mim matching (l)
transfer mim match information to full peak information (join), es+ matches without mim matching (l)
remove multiple matches per peak
remove multiple matches per peak
connection with observed mass channels
[chemform] = [chemform_found]
Custom
true if chemform = chemform_found
[chemform] = [chemform_found]
ABS([rt_diff]) <= 0.08
Custom
ABS([rt_diff]) <= 0.08
tagging - potential products
es+ matching
es+ match (reaction data mass with potential product mass range)
only keep peak match with highest mass intensity
sort by sample_id (asc), well (asc), peak_id (asc) and mass_int (des) to prepare for unique tool (only keep peak match with highest mass intensity)
sample_id - Ascending
well - Ascending
peak_id - Ascending
mass_int - Descending
full mass pattern of tags
create additional column "mass_match" to indicate line of peak, which was matched. calculate mass difference between measured mass and exact mass.
Ignore
All
ByName
remove exact mass and rt as they are not further needed
UniqueValue
add mass_int_ranking through unique tile
sort data by sample_id, peak_id, rt (all asc) and mass_int (des) to add mass_int_ranking (next operation, tile)
eln_id - Ascending
sample_id - Ascending
experiment_id - Ascending
exp_no - Ascending
...
remove tile_seq and rename tile_seq_num to mass_int_rank
obtain additional masses from peak, where a mass was matched
generate mass ranges
calculate mim+1 and mim-1, followed by mim min/max, mim+1 min/max and mim-1 min/max
mim = Round([mim], 0.1)
mim_min = [mim]-0.3
mim_max = [mim]+0.3
[m+h]+ = [mim]+1...
es+
area
FixedDecimal
19.1
[m+h+_min]
[Area]<=[m+h+_max]
[area] + 0.1
m+h+ ranges (+/- 0.5 da)
es-
area
FixedDecimal
19.1
[m-h-_min]
[Area]<=[m-h-_max]
[area] + 0.1
m-h- ranges (+/- 0.5 da)
mim
area
FixedDecimal
19.1
[mim_min]
[Area]<=[mim_max]
[area] + 0.1
mim ranges (+/- 0.3 da)
chemform
mim/observed matching
mim match
chemform match
chemform_mim match
only mim match
only chemform match
abs([mim_exact]-[mass]) <= 0.2
Custom
abs([mim_exact]-[mass]) <= 0.2
Ignore
All
ByName
union all streams (only mim match, chemform_mim match and only chemform match)
tag with "obs" and calculate mass difference between exact mass and found mass
[chemform] = [chemform_found]
Custom
true if matched chemform is equel with chemform_found
[chemform] = [chemform_found]
remove chemform
remove potential duplicate rows
es- matching
es- match (reaction data mass with potential product mass range)
only keep peak match with highest mass intensity
sort by sample_id (asc), well (asc), peak_id (asc) and mass_int (des) to prepare for unique tool (only keep peak match with highest mass intensity)
sample_id - Ascending
well - Ascending
peak_id - Ascending
mass_int - Descending
full mass pattern of tags
create additional column "mass_match" to indicate line, which was matched. calculate mass difference between measured mass and exact mass.
Ignore
All
ByName
union stream with matched mass from peak with all other masses found in the peak
remove exact mass and rt as they are not further needed
UniqueValue
add mass_int_ranking through unique tile
sort data by sample_id, peak_id, rt (all asc) and mass_int (des) to add mass_int_ranking (next operation, tile)
sort data by sample_id, peak_id, rt (all asc) and mass_int (des) to add mass_int_ranking (next operation, tile)
eln_id - Ascending
sample_id - Ascending
experiment_id - Ascending
exp_no - Ascending
...
remove tile_seq and rename tile_seq_num to mass_int_rank
obtain additional masses from peak, where a mass was matched
substrate
lowercase chem_role and chem_id, generate product_type
chem_role = LowerCase([chem_role])
chem_id = LowerCase([chem_id])
product_type =...
input: data_structure | substrate
\data_package\data_structure\experiments\substrate..csv
True
False
False
1
254
False
DoubleQuotes
,
False
28591
substrate..csv
input: data_structure | experiments
\data_package\data_structure\experiments\experiments.csv
True
False
False
1
254
False
DoubleQuotes
,
False
28591
experiments.csv
input: data_structure | chemicals
\data_package\data_structure\compound_data\chemicals.csv
True
False
False
1
254
False
DoubleQuotes
,
False
28591
chemicals.csv
generate rt ranges
area
FixedDecimal
19.2
[rt_min]
[Area]<=[rt_max]
[area] + 0.01
rt_range generator
\data_package\data_structure\compound_data\analytics.csv
True
False
False
1
254
False
DoubleQuotes
,
False
28591
analytics.csv
well generator
24-well plate
Alph increm
String
4
[Row_Start]
[Alph increm] <= [Row_End]
CharFromInt(CharToInt([Alph increm])+1)
alphabetic increment 24-well plate (A-D)
Generate Alphabetic Increment for Rows of 96-well plate
deselect start_row and end_row
add column 1
RowCount
Int32
4
1
RowCount <= 6
RowCount + 1
generate numeric increment for 24-well plate (1-6)
remove unwanted columns
insert row start (A) and row end (D) for 24-well plate
change date type and rename new column
Ignore
All
ByName
Simple
Contains
plate_id
True
fixed
2022-11-18 14:28:11
0
24
2022-11-18 14:28:11
2022-11-18 14:28:11
filter between 24- and 96-well plate
Contains([plate_id],"24")
96-well plate
Alph increm
String
4
[Row_Start]
[Alph increm] <= [Row_End]
CharFromInt(CharToInt([Alph increm])+1)
alphabetic increment 24-well plate (A-H)
Generate Alphabetic Increment for Rows of 96-well plate
deselect start_row and end_row
add column 1
RowCount
Int32
4
1
RowCount <= 12
RowCount + 1
generate numeric increment for 96-well plate (1-12)
remove unwanted columns
insert row start (A) and row end (D) for 24-well plate
change date type and rename new column
Ignore
All
ByName
Warning
All
ByName
input: potential_products
Simple
=
chem_role
True
fixed
2022-11-18 14:00:14
0
refproduct
2022-11-18 14:00:14
2022-11-18 14:00:14
[chem_role] = "refproduct"
[well] = "d24"
Custom
[well] = "d24"
[well] = "h96"
Custom
[well] = "h96"
\data_package\potential_products\pot_products_output.csv
True
False
False
1
254
False
DoubleQuotes
,
False
28591
pot_products_output.csv
es- matching - finalized
Warning
All
ByName
union all matched peaks
union all matched peaks
double-check to remove potential duplicates
double-check to remove potential duplicates
es- reliability categories
mass
remove unrequired columns
remove unrequired columns
Simple
=
mass_match
True
fixed
2022-11-11 16:22:00
0
1
2022-11-11 16:22:00
2022-11-11 16:22:00
filter for the mass that was matched using [mass_match] = "1"
[mass_match] = "1"
depending on ms_int set ms_reliability to"high" (>=80), "medium" (>= 50) or "low" (<50)
ms_reliability = IF [mass_int] >= 80 THEN "high"
ELSEIF [mass_int] >= 50 THEN "...
remove numerous headers to keep dataset compact for further processing
remove numerous headers to keep dataset compact for further processing
mass + mim
remove unrequired columns
remove unrequired columns
remove numerous headers to keep dataset compact for further processing
remove numerous headers to keep dataset compact for further processing
Simple
=
mass_match
True
fixed
2022-11-11 16:22:00
0
1
2022-11-11 16:22:00
2022-11-11 16:22:00
filter for the mass that was matched using [mass_match] = "1"
[mass_match] = "1"
observed + mass
remove unrequired columns
remove unrequired columns
Simple
=
mass_match
True
fixed
2022-11-11 16:22:00
0
1
2022-11-11 16:22:00
2022-11-11 16:22:00
filter for the mass that was matched using [mass_match] = "1"
[mass_match] = "1"
remove numerous headers to keep dataset compact for further processing
remove numerous headers to keep dataset compact for further processing
es- check loops
check for mim in mass spectrum
check if in addition to es- mass match, the mim was found in peak
check if in addition to es- mass match, the mim was found in peak
transfer mim match information to full peak information (join), es- matches without mim matching (l)
transfer mim match information to full peak information (join), es- matches without mim matching (l)
remove multiple matches per peak
remove multiple matches per peak
connection with observed mass channels
check if the es- peak was also matched in the mim/obs channel
check if the es- peak was also matched in the mim/obs channel
[chemform] = [chemform_found]
Custom
true if chemform = chemform_found
[chemform] = [chemform_found]
ABS([rt_diff]) <= 0.08
Custom
ABS([rt_diff]) <= 0.08
eln_id - Ascending
exp_no - Ascending
ipc_no - Ascending
rt_diff - Ascending
only select matched peaks
Warning
All
ByName
matched peaks (potproduct matching)
Ratios of all components (Ratios)
Determine ratio of components in each vial
Calculate the peak area sum of all components identified in each reaction (well)
Add peak sum to the corresponding wells via IPC_ID and well.
Remove unrequired columns
Sort by IPC_ID using ELN_ID, Plate_No and IPC_No (Ascending), Well (Ascending) and Ratio (Descending)
eln_id - Ascending
plate_no - Ascending
ipc_no - Ascending
well - Ascending
...
add plate_id, split well in row and column
well
ParseComplex
well
Warn
eln_id_Matched
experiment_id
Last
experiment_id
Chem_ID = IF contains([Chem_ID], "chem") THEN titlecase([Chem_ID])
ELSE [Chem_I...
Single condition, several acids (new plates)
Reaction components (educt)
input: data_structure | substrate
\data_package\data_structure\experiments\substrate..csv
True
False
False
1
254
False
DoubleQuotes
,
False
28591
substrate..csv
input: data_structure | chemicals
\data_package\data_structure\compound_data\chemicals.csv
True
False
False
1
254
False
DoubleQuotes
,
False
28591
chemicals.csv
Reaction conditions
input: data_structure | experiments
\data_package\data_structure\experiments\experiments.csv
True
False
False
1
254
False
DoubleQuotes
,
False
28591
experiments.csv
input: data_structure | experiments
\data_package\data_structure\experiments\process_controls.csv
True
False
False
1
254
False
DoubleQuotes
,
False
28591
process_controls.csv
Reaction components (reagents)
plate_id - Ascending
well - Ascending
|
|
|
Error
|
startingmat
startingmat
Last
startingmat_
startingmat
Last
startingmat_
startingmat
Last
startingmat_
reagent
reagent
Last
reagent_
reagent
Last
reagent_
reagent
Last
reagent_
solvent
solvent
Last
solvent_
solvent
Last
solvent_
solvent
Last
solvent_
solvent
Last
solvent_
False
True
"plate_id","well","startingmat_2_cas","startingmat_3_cas","startingmat_4_cas","reagent_1_cas","reagent_2_cas","reagent_3_cas","catalyst_1_cas","catalyst_2_cas","catalyst_3_cas","additive_1_cas","additive_2_cas","additive_3_cas","solvent_1_cas","solvent_2_cas","solvent_3_cas"
False
False
True
False
False
False
False
False
False
upper
False
True
"plate_id","well","startingmat_2_eq","startingmat_3_eq","startingmat_4_eq","reagent_1_eq","reagent_2_eq","reagent_3_eq","catalyst_1_eq","catalyst_2_eq","catalyst_3_eq","additive_1_eq","additive_2_eq","additive_3_eq"
False
False
True
False
False
False
False
False
False
upper
False
True
"plate_id","well","concentration_moll"
False
False
True
False
False
False
False
False
False
upper
False
True
"plate_id","well","solvent_1_fraction","solvent_2_fraction","solvent_3_fraction"
False
False
True
False
False
False
False
False
False
upper
|
False
True
"plate_id","well","startingmat_2_smiles","startingmat_3_smiles","startingmat_4_smiles","reagent_1_smiles","reagent_2_smiles","reagent_3_smiles","solvent_1_smiles","solvent_2_smiles","solvent_3_smiles"
False
False
True
False
False
False
False
False
False
upper
input: data_structure | plate_definition
\data_package\data_structure\plate_definition\plates.csv
True
False
False
1
254
False
DoubleQuotes
,
False
28591
plates.csv
input: data_structure | compound_data
\data_package\data_structure\compound_data\chemicals.csv
True
False
False
1
254
False
DoubleQuotes
,
False
28591
chemicals.csv
Custom
Horizontal
lcms_analysis