Protein Macroarrays: HexSelect protein macroarrays (Engine GmbH, Germany) were prepared as previously described . Briefly, protein macroarrays were incubated with diluted volunteer serum (1:100) for 16 h. Mouse anti-human IgG antibody (GG-7, Sigma-Aldrich), alkaline phosphatase (AP)-conjugated goat anti-mouse IgG antibody (A1418, Sigma-Aldrich) and AttoPhos substrate (S1000; Promega) were used as detection reagents. The arrays were scanned using GE Typhoon FLA 9000 Gel Imaging Scanner (GE Healthcare, Chicago, IL, USA). MATLAB Programming: MATLAB code is written specifically for the HexSelect protein macroarrays imaged using a 16-bit scanner at a resolution of 10 pixels/mm. The user interface built into the code requires MATLAB version 2019b or later to work properly. We used uncompressed TIFF files converted from the scanner RAW file without any compression or noise removal for the best results. All images were checked to ensure that there was no pixel saturation, i.e. all pixel values were well within the linear dynamic range of 0 to 65,535. These macroarrays contain 57,600 "dots" that are grouped into 2,304 "cells". Each cell consists of a 5 X 5 array of 25 dots, including the marker dot at the centre and 12 pairs of clones in a specific configuration as previously shown . Each dot is represented by 9 X 9 pixels on the image.