comparison RScript.r @ 6:18ac92a69ef1 draft

Uploaded
author davidvanzessen
date Tue, 18 Mar 2014 09:03:54 -0400
parents 99834201251f
children e2972f0935e9
comparison
equal deleted inserted replaced
5:99834201251f 6:18ac92a69ef1
22 22
23 if (!("data.table" %in% rownames(installed.packages()))) { 23 if (!("data.table" %in% rownames(installed.packages()))) {
24 install.packages("data.table", repos="http://cran.xl-mirror.nl/") 24 install.packages("data.table", repos="http://cran.xl-mirror.nl/")
25 } 25 }
26 library(data.table) 26 library(data.table)
27
28 if (!("reshape2" %in% rownames(installed.packages()))) {
29 install.packages("reshape2", repos="http://cran.xl-mirror.nl/")
30 }
31 library(reshape2)
27 32
28 33
29 test = read.table(inFile, sep="\t", header=TRUE, fill=T, comment.char="") 34 test = read.table(inFile, sep="\t", header=TRUE, fill=T, comment.char="")
30 35
31 test = test[test$Sample != "",] 36 test = test[test$Sample != "",]
91 PRODFJ = merge(PRODFJ, Jchain, by.x='Top.J.Gene', by.y='v.name', all.x=TRUE) 96 PRODFJ = merge(PRODFJ, Jchain, by.x='Top.J.Gene', by.y='v.name', all.x=TRUE)
92 close(tcJ) 97 close(tcJ)
93 98
94 setwd(outDir) 99 setwd(outDir)
95 100
96 write.table(PRODF, "allUnique.tsv", sep="\t",quote=F,row.names=F,col.names=T) 101 write.table(PRODF, "allUnique.csv", sep=",",quote=F,row.names=F,col.names=T)
97 102
98 pV = ggplot(PRODFV) 103 pV = ggplot(PRODFV)
99 pV = pV + geom_bar( aes( x=factor(reorder(Top.V.Gene, chr.orderV)), y=relFreq, fill=Sample), stat='identity', position="dodge") + theme(axis.text.x = element_text(angle = 90, hjust = 1)) 104 pV = pV + geom_bar( aes( x=factor(reorder(Top.V.Gene, chr.orderV)), y=relFreq, fill=Sample), stat='identity', position="dodge") + theme(axis.text.x = element_text(angle = 90, hjust = 1))
100 pV = pV + xlab("Summary of V gene") + ylab("Frequency") + ggtitle("Relative frequency of V gene usage") 105 pV = pV + xlab("Summary of V gene") + ylab("Frequency") + ggtitle("Relative frequency of V gene usage")
106 write.table(x=PRODFV, file="VFrequency.csv", sep=",",quote=F,row.names=F,col.names=T)
101 107
102 png("VPlot.png",width = 1280, height = 720) 108 png("VPlot.png",width = 1280, height = 720)
103 pV 109 pV
104 dev.off(); 110 dev.off();
105 111
106 pD = ggplot(PRODFD) 112 pD = ggplot(PRODFD)
107 pD = pD + geom_bar( aes( x=factor(reorder(Top.D.Gene, chr.orderD)), y=relFreq, fill=Sample), stat='identity', position="dodge") + theme(axis.text.x = element_text(angle = 90, hjust = 1)) 113 pD = pD + geom_bar( aes( x=factor(reorder(Top.D.Gene, chr.orderD)), y=relFreq, fill=Sample), stat='identity', position="dodge") + theme(axis.text.x = element_text(angle = 90, hjust = 1))
108 pD = pD + xlab("Summary of D gene") + ylab("Frequency") + ggtitle("Relative frequency of D gene usage") 114 pD = pD + xlab("Summary of D gene") + ylab("Frequency") + ggtitle("Relative frequency of D gene usage")
115 write.table(x=PRODFD, file="DFrequency.csv", sep=",",quote=F,row.names=F,col.names=T)
109 116
110 png("DPlot.png",width = 800, height = 600) 117 png("DPlot.png",width = 800, height = 600)
111 pD 118 pD
112 dev.off(); 119 dev.off();
113 120
114 pJ = ggplot(PRODFJ) 121 pJ = ggplot(PRODFJ)
115 pJ = pJ + geom_bar( aes( x=factor(reorder(Top.J.Gene, chr.orderJ)), y=relFreq, fill=Sample), stat='identity', position="dodge") + theme(axis.text.x = element_text(angle = 90, hjust = 1)) 122 pJ = pJ + geom_bar( aes( x=factor(reorder(Top.J.Gene, chr.orderJ)), y=relFreq, fill=Sample), stat='identity', position="dodge") + theme(axis.text.x = element_text(angle = 90, hjust = 1))
116 pJ = pJ + xlab("Summary of J gene") + ylab("Frequency") + ggtitle("Relative frequency of J gene usage") 123 pJ = pJ + xlab("Summary of J gene") + ylab("Frequency") + ggtitle("Relative frequency of J gene usage")
124 write.table(x=PRODFJ, file="JFrequency.csv", sep=",",quote=F,row.names=F,col.names=T)
117 125
118 png("JPlot.png",width = 800, height = 600) 126 png("JPlot.png",width = 800, height = 600)
119 pJ 127 pJ
120 dev.off(); 128 dev.off();
129
130 VGenes = PRODF[,c("Sample", "Top.V.Gene")]
131 VGenes$Top.V.Gene = gsub("-.*", "", VGenes$Top.V.Gene)
132 VGenes = data.frame(data.table(VGenes)[, list(Count=.N), by=c("Sample", "Top.V.Gene")])
133 TotalPerSample = data.frame(data.table(VGenes)[, list(total=sum(.SD$Count)), by=Sample])
134 VGenes = merge(VGenes, TotalPerSample, by="Sample")
135 VGenes$Frequency = VGenes$Count * 100 / VGenes$total
136 VPlot = ggplot(VGenes)
137 VPlot = VPlot + geom_bar(aes( x = Top.V.Gene, y = Frequency, fill = Sample), stat='identity', position='dodge' ) + theme(axis.text.x = element_text(angle = 90, hjust = 1))
138 png("VFPlot.png")
139 VPlot
140 dev.off();
141 write.table(x=VGenes, file="VFFrequency.csv", sep=",",quote=F,row.names=F,col.names=T)
142
143 DGenes = PRODF[,c("Sample", "Top.D.Gene")]
144 DGenes$Top.D.Gene = gsub("-.*", "", DGenes$Top.D.Gene)
145 DGenes = data.frame(data.table(DGenes)[, list(Count=.N), by=c("Sample", "Top.D.Gene")])
146 TotalPerSample = data.frame(data.table(DGenes)[, list(total=sum(.SD$Count)), by=Sample])
147 DGenes = merge(DGenes, TotalPerSample, by="Sample")
148 DGenes$Frequency = DGenes$Count * 100 / DGenes$total
149 DPlot = ggplot(DGenes)
150 DPlot = DPlot + geom_bar(aes( x = Top.D.Gene, y = Frequency, fill = Sample), stat='identity', position='dodge' ) + theme(axis.text.x = element_text(angle = 90, hjust = 1))
151 png("DFPlot.png")
152 DPlot
153 dev.off();
154 write.table(x=DGenes, file="DFFrequency.csv", sep=",",quote=F,row.names=F,col.names=T)
155
156 JGenes = PRODF[,c("Sample", "Top.J.Gene")]
157 JGenes$Top.J.Gene = gsub("-.*", "", JGenes$Top.J.Gene)
158 JGenes = data.frame(data.table(JGenes)[, list(Count=.N), by=c("Sample", "Top.J.Gene")])
159 TotalPerSample = data.frame(data.table(JGenes)[, list(total=sum(.SD$Count)), by=Sample])
160 JGenes = merge(JGenes, TotalPerSample, by="Sample")
161 JGenes$Frequency = JGenes$Count * 100 / JGenes$total
162 JPlot = ggplot(JGenes)
163 JPlot = JPlot + geom_bar(aes( x = Top.J.Gene, y = Frequency, fill = Sample), stat='identity', position='dodge' ) + theme(axis.text.x = element_text(angle = 90, hjust = 1))
164 png("JFPlot.png")
165 JPlot
166 dev.off();
167 write.table(x=JGenes, file="JFFrequency.csv", sep=",",quote=F,row.names=F,col.names=T)
121 168
122 revVchain = Vchain 169 revVchain = Vchain
123 revDchain = Dchain 170 revDchain = Dchain
124 revVchain$chr.orderV = rev(revVchain$chr.orderV) 171 revVchain$chr.orderV = rev(revVchain$chr.orderV)
125 revDchain$chr.orderD = rev(revDchain$chr.orderD) 172 revDchain$chr.orderD = rev(revDchain$chr.orderD)
136 xlab("D genes") + 183 xlab("D genes") +
137 ylab("V Genes") 184 ylab("V Genes")
138 185
139 png(paste("HeatmapVD_", unique(dat[3])[1,1] , ".png", sep=""), width=150+(15*length(Dchain$v.name)), height=100+(15*length(Vchain$v.name))) 186 png(paste("HeatmapVD_", unique(dat[3])[1,1] , ".png", sep=""), width=150+(15*length(Dchain$v.name)), height=100+(15*length(Vchain$v.name)))
140 print(img) 187 print(img)
188
141 dev.off() 189 dev.off()
190 write.table(x=acast(dat, Top.V.Gene~Top.D.Gene, value.var="Length"), file=paste("HeatmapVD_", unique(dat[3])[1,1], ".csv", sep=""), sep=",",quote=F,row.names=T,col.names=NA)
142 } 191 }
143 192
144 VandDCount = data.frame(data.table(PRODF)[, list(Length=.N), by=c("Top.V.Gene", "Top.D.Gene", "Sample")]) 193 VandDCount = data.frame(data.table(PRODF)[, list(Length=.N), by=c("Top.V.Gene", "Top.D.Gene", "Sample")])
145 194
146 VandDCount$l = log(VandDCount$Length) 195 VandDCount$l = log(VandDCount$Length)
172 ylab("V Genes") 221 ylab("V Genes")
173 222
174 png(paste("HeatmapVJ_", unique(dat[3])[1,1] , ".png", sep=""), width=150+(15*length(Jchain$v.name)), height=100+(15*length(Vchain$v.name))) 223 png(paste("HeatmapVJ_", unique(dat[3])[1,1] , ".png", sep=""), width=150+(15*length(Jchain$v.name)), height=100+(15*length(Vchain$v.name)))
175 print(img) 224 print(img)
176 dev.off() 225 dev.off()
226 write.table(x=acast(dat, Top.V.Gene~Top.J.Gene, value.var="Length"), file=paste("HeatmapVJ_", unique(dat[3])[1,1], ".csv", sep=""), sep=",",quote=F,row.names=T,col.names=NA)
177 } 227 }
178 228
179 VandJCount = data.frame(data.table(PRODF)[, list(Length=.N), by=c("Top.V.Gene", "Top.J.Gene", "Sample")]) 229 VandJCount = data.frame(data.table(PRODF)[, list(Length=.N), by=c("Top.V.Gene", "Top.J.Gene", "Sample")])
180 230
181 VandJCount$l = log(VandJCount$Length) 231 VandJCount$l = log(VandJCount$Length)
204 ylab("D Genes") 254 ylab("D Genes")
205 255
206 png(paste("HeatmapDJ_", unique(dat[3])[1,1] , ".png", sep=""), width=150+(15*length(Jchain$v.name)), height=100+(15*length(Dchain$v.name))) 256 png(paste("HeatmapDJ_", unique(dat[3])[1,1] , ".png", sep=""), width=150+(15*length(Jchain$v.name)), height=100+(15*length(Dchain$v.name)))
207 print(img) 257 print(img)
208 dev.off() 258 dev.off()
259 write.table(x=acast(dat, Top.D.Gene~Top.J.Gene, value.var="Length"), file=paste("HeatmapDJ_", unique(dat[3])[1,1], ".csv", sep=""), sep=",",quote=F,row.names=T,col.names=NA)
209 } 260 }
210 261
211 DandJCount = data.frame(data.table(PRODF)[, list(Length=.N), by=c("Top.D.Gene", "Top.J.Gene", "Sample")]) 262 DandJCount = data.frame(data.table(PRODF)[, list(Length=.N), by=c("Top.D.Gene", "Top.J.Gene", "Sample")])
212 263
213 DandJCount$l = log(DandJCount$Length) 264 DandJCount$l = log(DandJCount$Length)
234 if("Replicate" %in% colnames(test)) 285 if("Replicate" %in% colnames(test))
235 { 286 {
236 clonalityFrame = PROD 287 clonalityFrame = PROD
237 clonalityFrame$ReplicateConcat = do.call(paste, c(clonalityFrame[c("VDJCDR3", "Sample", "Replicate")], sep = ":")) 288 clonalityFrame$ReplicateConcat = do.call(paste, c(clonalityFrame[c("VDJCDR3", "Sample", "Replicate")], sep = ":"))
238 clonalityFrame = clonalityFrame[!duplicated(clonalityFrame$ReplicateConcat), ] 289 clonalityFrame = clonalityFrame[!duplicated(clonalityFrame$ReplicateConcat), ]
239 write.table(clonalityFrame, "clonalityComplete.tsv", sep="\t",quote=F,row.names=F,col.names=T) 290 write.table(clonalityFrame, "clonalityComplete.csv", sep=",",quote=F,row.names=F,col.names=T)
240 291
241 ClonalitySampleReplicatePrint <- function(dat){ 292 ClonalitySampleReplicatePrint <- function(dat){
242 write.table(dat, paste("clonality_", unique(dat$Sample) , "_", unique(dat$Replicate), ".tsv", sep=""), sep="\t",quote=F,row.names=F,col.names=T) 293 write.table(dat, paste("clonality_", unique(dat$Sample) , "_", unique(dat$Replicate), ".csv", sep=""), sep=",",quote=F,row.names=F,col.names=T)
243 } 294 }
244 295
245 clonalityFrameSplit = split(clonalityFrame, f=clonalityFrame[,c("Sample", "Replicate")]) 296 clonalityFrameSplit = split(clonalityFrame, f=clonalityFrame[,c("Sample", "Replicate")])
246 #lapply(clonalityFrameSplit, FUN=ClonalitySampleReplicatePrint) 297 #lapply(clonalityFrameSplit, FUN=ClonalitySampleReplicatePrint)
247 298
248 ClonalitySamplePrint <- function(dat){ 299 ClonalitySamplePrint <- function(dat){
249 write.table(dat, paste("clonality_", unique(dat$Sample) , ".tsv", sep=""), sep="\t",quote=F,row.names=F,col.names=T) 300 write.table(dat, paste("clonality_", unique(dat$Sample) , ".csv", sep=""), sep=",",quote=F,row.names=F,col.names=T)
250 } 301 }
251 302
252 clonalityFrameSplit = split(clonalityFrame, f=clonalityFrame[,"Sample"]) 303 clonalityFrameSplit = split(clonalityFrame, f=clonalityFrame[,"Sample"])
253 #lapply(clonalityFrameSplit, FUN=ClonalitySamplePrint) 304 #lapply(clonalityFrameSplit, FUN=ClonalitySamplePrint)
254 305