Skip to content

Issue sorting within a group label #96

@joeycurti3

Description

@joeycurti3

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions