123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- #!/usr/bin/env Rscript
- # This script will add the shift data to the finalTable.csv file
- #
- # May want to reorder columns in excel before making heatmaps - otherwise all the shift data will be plotted next to each other.
- library(plyr)
- library(dplyr)
- library(sos)
- args <- commandArgs(TRUE)
- if (length(args) >= 1) {
- finalTable <- file.path(args[1])
- } else {
- finalTable <- "REMcRdy_lm_only.csv-finalTable.csv" # for legacy workflow
- }
- if (length(args) >= 2) {
- shiftFile <- file.path(args[2])
- } else {
- shiftFile <- "Shift_only.csv" # for legacy workflow
- }
- if (length(args) >= 3) {
- studyInfo <- file.path(args[3])
- } else {
- studyInfo <- "../Code/StudyInfo.csv" # for legacy workflow
- }
- if (length(args) >= 4) {
- output <- file.path(args[4])
- } else {
- output <- "REMcHeatmaps/REMcWithShift.csv" # for legacy workflow
- }
- # Read in the REMc finalTable data
- X <- data.frame(read.csv(file = finalTable, header = TRUE, stringsAsFactors = FALSE))
- # Read in the shift data From ../JoinInteractions
- Y <- data.frame(read.csv(file = shiftFile, header = TRUE, stringsAsFactors = FALSE))
- Labels <- read.delim(studyInfo, skip = 0, as.is = TRUE, row.names = 1, strip.white = TRUE)
- # Determine the number of cols - needed to create the correct number of new cols
- Xcolnum <- length(X[1, ])
- ADDnum <- Xcolnum + length(Y[1, ]) - 2
- # Create new columns filled with NAs to be filled with data
- Xtemp <- X
- Xtemp[, (Xcolnum + 1):ADDnum] <- NA
- # Match the orf names in each row to a orf name in the shift data file and then add the shift data to the finalTable file
- shiftTbl < - as.data.frame(matrix(nrow = 1, ncol = length(Y) - 2)) #the df shiftTbl must be initialized before for loop
- for (i in 1:length(X[, 1])) {
- Shiftrownum <- match(X[i, 2], Y[, 1])
- shiftTbl[i, ] <- Y[Shiftrownum, 3:length(Y[1, ])]
- Xtemp[i, (Xcolnum + 1):ADDnum] <- Y[Shiftrownum, 3:length(Y[1, ])]
- }
- headerX <- colnames(Xtemp)
- headerY <- colnames(Y)
- shfHdr <- headerY[3:length(headerY)]
- combTbl <- X[, 1:3]
- lmTbl <- select(Xtemp, contains("Z_lm")) #X[,(4:Xcolnum-2)]
- shiftTbl <- select(Xtemp, contains("V"))
- clustTbl <- select(Xtemp, contains("cluster."))
- # Give the new column names the same names as in the shift file
- Xcols <- colnames(X)
- Ycols <- colnames(Y)[3:length(Y[1, ])]
- newCols <- c(Xcols[1:Xcolnum], Ycols)
- # Reorder columns for generating heatmaps
- combI <- combTbl #Starting Template orf, Genename columns
- headersRemc <- newCols #colnames(X)
- newHeaders <- newCols[1:3]
- lmHdr <- colnames(lmTbl) #newCols[4:(length(Xcols)-2)]
- clstHdr <- colnames(clustTbl) #select(newCols, contains('cluster.')) #newCols[3+length(lmHdr):2]
- intLvHdr <- vector()
- #Reorder columns to produce an interleaved set of Z_lm and Shift data for all the cpps.
- for (i in 1:(length(shiftTbl[1, ]))) {
- combI <- cbind.data.frame(combI, shiftTbl[i])
- combI <- cbind.data.frame(combI, lmTbl[i])
- intLvHdrx <- c(shfHdr[i], lmHdr[i])
- intLvHdr <- c(intLvHdr, intLvHdrx)
- }
- combIHdr <- c(colnames(combTbl), intLvHdr, clstHdr)
- combI <- cbind.data.frame(combI, clustTbl)
- colnames(combI) <- combIHdr
- write.csv(combI, file = output, row.names = FALSE)
|