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.