Phylogenetic analysis
All extracted ORF or UTR sequences with mean sequencing depth < 5 were discarded. The ORF OGs (orthologous groups) were already alignments and do not need to be aligned (see Figure 2b). We used Gblocks version 0.91 (Castresana 2000) under codon mode (-t = c) and half gaps allowed (-b5 = h) to refine these ORF alignments. The UTR OGs were aligned using the program SATé-II version 2.2.2 (Liu et al., 2012) with the ”-auto” option. The resulting alignments are also refined using Gblocks with half gaps allowed (-b5 = h). To further reduce possible errors in orthology assignment and alignment, we reconstructed a maximum-likelihood (ML) tree for every ORF or UTR alignment using RAxML v8.2.2 (Stamatakis 2014) under GTR + GAMMA model. If a tree contained extremely long branches that accounted for > 50% of the total tree length, the corresponding sequences were removed from the alignment. We kept only the alignments that are longer than 100 bp and contain more than seventeen species (at least ten colubrid species and one outgroup species). Gene trees for each refined ORF or UTR alignment were constructed using RAxML with the GTR + GAMMA model and 100 bootstrapping replicates (-f a option). To investigate the degree of incongruence among gene trees, we calculated the pairwise Robinson-Foulds distances (Robinson & Foulds 1981) between gene trees using the python script of Gori et al. (2016). The tree-to-tree distances were visualized using multidimensional scaling (MDS) in R (Hillis et al., 2005).
The filtered ORF and UTR alignments were combined into two concatenated supermatrix, respectively, and subjected to ML analyses using RAxML. Because our data sets included thousands of genes, partitioning our data sets by genes was not possible. Therefore, the ORF data set was partitioned by three codon positions, and the UTR data set was unpartitioned. ML analyses for both data sets were performed with the GTR + GAMMA model. Branch support for the resulting phylogeny was evaluated with 500 rapid bootstrapping replicates implemented in RAxML.