We further curated input files using pandas (v.1.2.1) 33,34 to remove duplicate compounds and lines containing fields with null entries. In cases where we had building blocks reported in duplicate with both unspecified and specified stereochemistry, we elected to remove all compounds containing the building block with unspecified stereochemistry. This was the case for fewer than 5% of the building blocks in any of the positions of the library. We also removed compounds with building blocks containing boron because we could not generate conformers for them due to force field limitations; this library initially had many boron-containing compounds. Furthermore, some building blocks were reported with protecting groups still present. We used ChemDraw (v.17.0) to generate SMIRKS reactions and used the OEChem toolkit (v.2021.1.1) to deprotect Fmoc, nBoc, methyl ester and ethyl ester groups on those relevant building blocks. We did this to ensure that the presence of protecting groups would not bias our similarity calculations and because the protecting groups were not present in the final products. After applying the deprotecting functions, we saved all the unique building blocks at each library position to separate files. Associated code for these steps can be found at . 4.3. 2D Tanimoto. We calculated 2D Tanimoto scores using RDKit (v.2020.09.1.0) 36 by first converting compounds into Morgan fingerprints with the radius parameter set to 3 bonds.