# rQTL format conversion # # 7th March 2016 # Mark Ravinet - CEES rm(list = ls()) library(qtl) library(ggplot2) # read in generic data and convert for rqtl myData <- read.delim("./stacks_raw_genotypes.tsv") myData <- myData[myData$Marker == "ab/ab", ] names(myData)[1] <- "Catalog_ID" names(myData) <- sub("\\.", "_",(sub("\\.", "_", names(myData)))) # transpose and prepare for quick linkage newData <- t(myData[, 5:ncol(myData)]) colnames(newData) <- paste0("r", myData$Catalog_ID) newData[newData == "-"] <- NA newData[newData == "--"] <- NA newData[newData == "aa"] <- "AA" newData[newData == "bb"] <- "BB" newData[newData == "ab"] <- "AB" # resistance factor res <- rep(NA, length(rownames(newData))) res[grepl("2PR", rownames(newData))] <- "PR" res[grepl("2R", rownames(newData))] <- "R" res[grepl("2S", rownames(newData))] <- "S" # add res for grandparents res[1:2] <- c("R", "S") res <- factor(res) # clean up individual names rownames(newData) <- sub("_sort", "", rownames(newData)) # put together a data.frame qtl_out <- data.frame(res, newData, check.names = FALSE) # retrieve scaffold names and positions cat_tags <- read.delim("rxstacks_010316/batch_1.catalog.tags.tsv.gz", check.names = FALSE, header = F, skip = 1)[, 3:5] names(cat_tags) <- c("tag", "scaffold", "pos") scaffs <- sub("Scaffold", "S", as.character(cat_tags[cat_tags$tag %in% myData$Catalog_ID, ]$scaffold)) # strip ".1" from Scaffold names as it causes confusion downstream scaffs <- sub("\\.1", "", scaffs) # create combined scaffs and markers markers <- colnames(qtl_out)[2:ncol(qtl_out)] marker_scaff <- paste(markers, scaffs, sep = "_") # create false scaffold false_scaffs <- rep(1, length(scaffs)) # replace names colnames(qtl_out)[2:ncol(qtl_out)] <- marker_scaff qtl_out <- qtl_out[3:nrow(qtl_out), ] out <- "./rqtl_final_070316/bedbugs_m8_rqtl_070316.csv" cat("id", names(qtl_out), sep = ",", file = out) cat("", "", scaffs, sep = ",", file = out, append = TRUE) write.table(qtl_out, out, quote = FALSE, sep =",", col.names = FALSE, append = TRUE, row.names = TRUE) out <- "./rqtl_final_070316/bedbugs_m8_rqtl_070316.csv" cat("id", names(qtl_out), "\n", sep = ",", file = out) cat("", "", scaffs, "\n", sep = ",", file = out, append = TRUE) write.table(qtl_out, out, quote = FALSE, sep =",", col.names = FALSE, append = TRUE, row.names = TRUE) test <- read.cross("csv", "", out, genotypes = c("AA", "AB", "BB"), estimate.map = FALSE)