If a single value was missing but there were values for more than 50% of abundances the missing value was filled with the average of the available values. Row wise and column scanning and filling of missing data was applied twice. If after these steps the protein specific abundance matrix still contained missing values, these were filled by sampling from existing data. Specifically, data were sampled from a sequence of 10 evenly spaced numbers between the minimum and maximum of existing values. Protein PSMs with missing values after these operations had most or all values lacking. These, we surmised, were proteins at the limit of the mass spectrometry detection level. Instead of setting their abundances to zero we sampled them from a range of values between the global abundance minimum, the smallest value in the mass spectrometry data, and 75% of this minimum. Proteins with all abundances missing in all samples were discarded.