-
Notifications
You must be signed in to change notification settings - Fork 38
Description
Hello,
I'm plotting my admixture results for a selection of samples of bats across their distributional range. I have samples from many western North American populations. Here is an example of visualizing k=2 and k=3 together.
I'm struggling to get the order of the group labels correct. No matter what I do the order of the group labels is always alphabetical. My preference would be to display these results in the following order: c("AK","BC","WA","MT","ID","CA","NV","UT","CO","NM","TX","OK","MX","BAJA"). However, factor reordering does not do this nor does the "subset" call in PlotQ. I've included my code below so you can see how I'm setting up the data.
Any advice you can provide would be appreciated. Thanks!
Code:
Read in Q files from all unrelated samples
afiles<- list.files(path=("~/Downloads/Q_files_20241020/"), pattern = "PassSNPs", full.names=T)
alist <- readQ(files=afiles)Get some summaries to make sure you got the right files
tr1 <- tabulateQ(qlist=alist)
sr1 <- summariseQ(tr1)Make individual labels for plotting
inds_all = c("08082021_patandbill1_myyu", "092221_catalinabarn_myyu1", "20210616_MODOC_myyu_ca1", "Myoyum_041408_oceaside_myyu", "Myoyum_043017_harbison_myyu", "Myoyum_070708_stadium_myyu", "Myoyum_071007_hiddentr_myyu", "Myoyum_080807_brandonst_myyu", "Myoyum_08082021_patandbill6_myyu", "Myoyum_080919_pinevalley_myyu", "Myoyum_092007_chulavista_myyu", "Myoyum_092020_elcajon_myyu", "Myoyum_092807_poway_myyu", "Myoyum_092816_nordahl_myyu", "Myoyum_102121_whitewater_myyu1", "Myoyum_20230722_SteelheadPreserve_myyu1", "Myoyum_20230823_Temecula", "Myoyum_26A", "Myoyum_28Oct2021_Yos_Bat1_MYYU", "Myoyum_DP87_myyu", "Myoyum_DP96_myyu", "Myoyum_DSJ_15", "Myoyum_DSJ_9", "Myoyum_JW06_A", "Myoyum_MK31_A", "Myoyum_MK33_A", "Myoyum_MYYU02", "Myoyum_MYYU_4", "Myoyum_MYYU_CA2008_004", "Myoyum_MYYU_CA2012_018", "Myoyum_MYYU_CA2014_013", "Myoyum_MYYU_CA2015_001", "Myoyum_MYYU_CA2015_012", "Myoyum_MYYU_CA2016_001", "Myoyum_MYYU_CA2016_004", "Myoyum_MYYU_CA2016_009", "Myoyum_MYYU_CA2016_011", "Myoyum_MYYU_CA2016_013", "Myoyum_MYYU_CA2017_003", "Myoyum_MYYU_CA2017_006", "Myoyum_MYYU_CA2017_011", "Myoyum_MYYU_CA2017_013", "Myoyum_MYYU_CA2017_014", "Myoyum_MYYU_CA2017_023", "Myoyum_MYYU_CA2017_026", "Myoyum_MYYU_CA2017_027", "Myoyum_MYYU_CA2017_031", "Myoyum_MYYU_CA2017_032", "Myoyum_MYYU_CA2017_033", "Myoyum_MYYU_CA2017_037", "Myoyum_MYYU_CA2017_039", "Myoyum_MYYU_CA2017_040", "Myoyum_MYYU_CA2017_043", "Myoyum_MYYU_CA2017_044", "Myoyum_MYYU_CA2018_004", "Myoyum_MYYU_CA2018_007", "Myoyum_MYYU_CA2018_008", "Myoyum_MYYU_CA2018_014", "Myoyum_MYYU_CA2018_015", "Myoyum_MYYU_CA2018_017", "Myoyum_MYYU_CA2018_034", "Myoyum_MYYU_CA2018_036", "Myoyum_MYYU_CA2018_040", "Myoyum_MYYU_CA2018_043", "Myoyum_MYYU_CA2018_046", "Myoyum_MYYU_CA2018_048", "Myoyum_MYYU_CA2018_056", "Myoyum_MYYU_CA2018_062", "Myoyum_MYYU_CA2018_063", "Myoyum_MYYU_CA2018_065", "Myoyum_MYYU_CA2018_069", "Myoyum_MYYU_CA2018_070", "Myoyum_MYYU_CA2018_075", "Myoyum_MYYU_CA2018_076", "Myoyum_MYYU_CA2018_080", "Myoyum_MYYU_CA2018_081", "Myoyum_MYYU_CA2018_085", "Myoyum_MYYU_CA2018_087", "Myoyum_MYYU_CA2018_088", "Myoyum_MYYU_CA2018_094", "Myoyum_MYYU_CA2018_113", "Myoyum_MYYU_CA2019_016", "Myoyum_MYYU_CA2019_045", "Myoyum_MYYU_CA2020_001", "Myoyum_MYYU_CA2020_032", "Myoyum_MYYU_CA2020_034", "Myoyum_MYYU_CA2020_036", "Myoyum_MYYU_CA2020_037", "Myoyum_MYYU_CA2020_038", "Myoyum_MYYU_CA2020_CCGP", "Myoyum_MYYU_CA2021_003", "Myoyum_MYYU_CA2021_007", "Myoyum_MYYU_CA2021_034", "Myoyum_MYYU_CA2021_035", "Myoyum_MYYU_CA2021_042", "Myoyum_MYYU_CA2021_046", "Myoyum_MYYU_CA2021_084", "Myoyum_MYYU_CA2021_087", "Myoyum_MYYU_CA2021_088", "Myoyum_MYYU_CA2021_089", "Myoyum_NE90_A_MYYU", "Myoyum_TD9845", "Myoyum_TK163190", "Myoyum_TK186214", "Myoyum_TK199418", "Myoyum_TK48571", "Myoyum_TK48589", "Myoyum_UAM_Mamm_120402", "Myoyum_UH20_A", "Myoyum_WA351", "Myoyum_WA358", "Myoyum_hartpark_093021_myyu1")
inds_all <- cbind(inds_all)Add them to Q files -- CAUTION** Make sure you have the correct order from PLINK .fam or .nosex file
if(length(unique(sapply(alist,nrow)))==1) alist <- lapply(alist,"rownames<-",inds_all)
Make grouping labels for plotting
pop_order <- read.csv("~/Downloads/poporder.csv",sep = ",",stringsAsFactors = F,header=F)
labs_all <- data.frame(pop_order)
colnames(labs_all) <- c("Location")Create list of Q files for plotting
alist3 <- alignK(alist[c(13,19)])
Get k labels for plotting based on what files you selected
fn1 <- function(x) attr(x,"k")
spnames3 <- paste0("K=",sapply(alist3,fn1))Plot
p1.3 <- plotQ(alist3,imgoutput="join", returnplot=T, exportplot=F, basesize=15, showindlab=T, useindlab=T,
ordergrp=T, linesize=0.8, pointsize=4, panelspacer = .5, sortind = "label",grplabsize = 3,
sharedindlab=T, splab=spnames3, showyaxis=T, indlabangle=80, indlabvjust=1, indlabsize=12,
spbgcol="lightblue",barbordercolour = "white", barbordersize = .5, grplabpos = .65, grplabangle = 80,
returndata=T, grplab = labs_all)grid.arrange(p1.3$plot[[1]])
