Raw mass spectrometry data were processed using an R based workflow for feature detection, retention time alignment, feature grouping, peak filling, feature clustering.  Feature data was input as data frame

Features with missing values were replaced with small values simulating noise. For each feature, the minimum detected value was multiplied by 0.1. Noise was then added using a factor of 0.1. The absulute value of this value was used as the filled value to ensure that only non-negative values carried forward. Zero values were treated as missing values.

Features were normalized to total extracted ion signal to account for differences in total solute concentration.

Features were clustered using the ramclustR algorithm (Broeckling 2014). Parameter settings were as follows: st = 5, sr = 0.7, maxt = 500, deepSplit = FALSE, hmax = 0.3, minModuleSize = 2, and cor.method = pearson.