Sequence gathering and ASR. Sequences were gathered from NCBI () and UniProt () databases based on sequence identity to the whole P450-TT sequence with a 37% cut-off. Duplicates were removed using SeqScrub . Sequences with highly divergent regions suggestive of errors in annotation or calling of start and stop sites were removed in iterative rounds of sequence curation. The final total number of sequences was 467, and all had >45% identity compared to P450-TT. Sequences were aligned with MAFFT (v7.487) using the L-INS-i strategy . A phylogenetic tree was inferred using IQ-TREE 2 (v2.1.2) with ModelFinder identifying LG+F+R10 as the best-fit model according to both the Akaike Information Criterion and the Bayesian Information Criterion . The tree (Supplementary Fig. ) was labelled with SH-like aLRT, approximate Bayes parametric test, and ultrafast bootstrap values . The tree was rooted with the Actinobacteria clade separated from the Proteobacteria clade ; all curated sequences collected from the actinobacterial clade were included in the outgroup. Ancestral sequences were reconstructed using Graphical Representation of Ancestral Sequence Predictions (GRASP), from the alignment and the Newick tree files . Ancestors were predicted via a joint, maximum likelihood reconstruction approach to facilitate comparison of multiple ancestors across the tree . A pairwise sequence identity matrix between the extant CYP116B panel and the ancestral enzymes (Supplementary Table ) was calculated using the sequence manipulation suite (). Amino acid compositions (Supplementary Table ) were calculated using the ProtParam program in the ExPASy proteomic server.