*4.8. Similarity Network*

For the similarity network of the three-strain dataset, a blastp all-vs-all output was processed in Python using the networkX package [86]. Both functional keratinase and nonkeratinase databases were added to the three-strain dataset for network construction. In the network, nodes correspond to each protease and edges to a hit in the resulting alignment. The E-value cutoff for the display of the edge weights was set to 1 × <sup>10</sup>−<sup>5</sup> <sup>1</sup> × <sup>10</sup>−20, 1 × <sup>10</sup>−40, and 1 × <sup>10</sup>−80, being 1 × <sup>10</sup>−<sup>40</sup> the value chosen for the analysis, since it is a typical value (order of magnitude) employed in sequence similarity networks [87], and subsequent steps in the pipeline have small sensitivity to using stricter cutoffs (Figure S6). Community detection was performed using a weighted Louvain algorithm with a default resolution parameter of 1 [88]. A depiction of the network was obtained using Gephi v.0.9.2 [89] with a combination of Fruchtermann-Reingold [90] and Yifan Hu [91] layout algorithms.
