20 Supplementary Figure 15
20.1 Summary
This is the accessory documentation of Supplementary Figure 15.
The Figure can be recreated by running the R script S15.R
:
cd $WORK/3_figures/F_scripts
Rscript --vanilla S15.R
rm Rplots.pdf
20.2 Details of S15.R
The S15.R script is a subset of the F1.R
script run including data sets filtered for a minimum distance between the SNPs. Is an executable R script that depends on the tidyverse package for data managing and plotting as well as on the cowplot package for plot composition.
It also depends on the helper script F1.functions.R
.
library(tidyverse)
source("../../0_data/0_scripts/F1.functions.R")
20.2.1 Setup
First, we load some metadata about the samples, define some colors and read in the PCA data for the three locations.
dataAll <- read.csv('../../0_data/0_resources/F1.sample.txt',sep='\t') %>%
mutate(loc=substrRight(as.character(id),3))
cFILL <- rgb(.7,.7,.7)
ccc<-rgb(0,.4,.8)
clr<-c('#000000','#d45500','#000000')
fll<-c('#000000','#d45500','#ffffff')
eVclr <- c(rep('darkred',2),rep(cFILL,8))
belPCA <- readRDS('../../2_output/08_popGen/04_pca/bel_ld/belpca.Rds')
honPCA <- readRDS('../../2_output/08_popGen/04_pca/hon_ld/honpca.Rds')
panPCA <- readRDS('../../2_output/08_popGen/04_pca/pan_ld/panpca.Rds')
20.2.2 Subplots
Then, for each location, we add the sample information and extract the amount of explains variation for the individual PCs. We crate the x- and y-labels for the axis and plot the PCA
20.2.2.1 Honduras:
dataHON <- cbind(dataAll %>% filter(sample=='sample',loc=='hon')%>% select(id,spec),
honPCA$scores); names(dataHON)[3:12]<- paste('PC',1:10,sep='')
exp_varHON <- (honPCA$singular.values[1:10])^2/length(honPCA$maf)
xlabHON <- paste('PC1 (',sprintf("%.1f",exp_varHON[1]*100),'%)')# explained varinace)')
ylabHON <- paste('PC2 (',sprintf("%.1f",exp_varHON[2]*100),'%)')# explained varinace)')
p1 <- ggplot(dataHON,aes(x=PC1,y=PC2,col=spec,fill=spec))+geom_point(size=1.1,shape=21)+
scale_color_manual(values=clr,guide=F)+
ggtitle('Honduras')+
scale_fill_manual(values=fll,guide=F)+theme_mapK+
theme(legend.position='bottom',plot.title = element_text(size = 11,hjust = .45),
panel.border = element_rect(color=rgb(.9,.9,.9),fill=rgb(1,1,1,0)),
plot.margin = unit(c(3,rep(5,3)),'pt'))+#coord_equal()+
scale_x_continuous(name=xlabHON,breaks = c(-.3,.2))+
scale_y_continuous(name=ylabHON,breaks = c(-.4,.4))
20.2.2.2 Belize:
dataBEL <- cbind(dataAll %>% filter(sample=='sample',loc=='bel') %>% select(id,spec),
belPCA$scores); names(dataBEL)[3:12]<- paste('PC',1:10,sep='')
exp_varBEL <- (belPCA$singular.values[1:10])^2/length(belPCA$maf)
xlabBEL <- paste('PC1 (',sprintf("%.1f",exp_varBEL[1]*100),'%)')
ylabBEL <- paste('PC2 (',sprintf("%.1f",exp_varBEL[2]*100),'%)')
p2 <- ggplot(dataBEL,aes(x=PC1,y=PC2,col=spec,fill=spec))+geom_point(size=1.1,shape=21)+
scale_color_manual(values=clr,guide=F)+
ggtitle('Belize')+
scale_fill_manual(values=fll,guide=F)+theme_mapK+
theme(legend.position='bottom',plot.title = element_text(size = 11,hjust = .45),
panel.border = element_rect(color=rgb(.9,.9,.9),fill=rgb(1,1,1,0)),
plot.margin = unit(c(3,rep(5,3)),'pt'))+
scale_x_continuous(name=xlabBEL,breaks = c(-.15,.25))+
scale_y_continuous(name=ylabBEL,breaks = c(-.35,.25))
20.2.2.3 Panama:
dataPAN <- cbind(dataAll %>% filter(sample=='sample',loc=='boc',spec!='gum')%>% select(id,spec),
panPCA$scores); names(dataPAN)[3:12]<- paste('PC',1:10,sep='')
exp_varPAN <- (panPCA$singular.values[1:10])^2/length(panPCA$maf)
xlabPAN <- paste('PC1 (',sprintf("%.1f",exp_varPAN[1]*100),'%)')
ylabPAN <- paste('PC2 (',sprintf("%.1f",exp_varPAN[2]*100),'%)')
p3 <- ggplot(dataPAN,aes(x=PC1,y=PC2,col=spec,fill=spec))+geom_point(size=1.1,shape=21)+
scale_color_manual(values=clr,guide=F)+
ggtitle('Panama')+
scale_fill_manual(values=fll,guide=F)+theme_mapK+
theme(legend.position='bottom',plot.title = element_text(size = 11,hjust = .45),
panel.border = element_rect(color=rgb(.9,.9,.9),fill=rgb(1,1,1,0)),
plot.margin = unit(c(3,rep(5,3)),'pt'))+
scale_x_continuous(name=xlabPAN,breaks = c(-.15,.2))+
scale_y_continuous(name=ylabPAN,breaks = c(-.2,.2))
20.2.3 Composition
Using the cowplot package we put together the final figure.
S15 <- cowplot::plot_grid(p2, p1, p3, nrow = 1, labels = letters[1:3])
The Figure is then exported using ggsave()
:
ggsave(plot = S15,filename = '../output/S15.pdf',width = 183,height = 63,units = 'mm',device = cairo_pdf)