Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue sorting within a group label #96

Open
joeycurti3 opened this issue Nov 4, 2024 · 0 comments
Open

Issue sorting within a group label #96

joeycurti3 opened this issue Nov 4, 2024 · 0 comments

Comments

@joeycurti3
Copy link

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.

Screenshot 2024-11-04 at 14 43 46

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]])

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant