Mercurial > repos > davidvanzessen > test_plotting_merged
comparison RScript.r @ 2:aac19ac7cb21 draft
Uploaded
author | davidvanzessen |
---|---|
date | Fri, 11 Oct 2013 09:11:03 -0400 |
parents | c43c63f4ef80 |
children | d27d745d0556 |
comparison
equal
deleted
inserted
replaced
1:c43c63f4ef80 | 2:aac19ac7cb21 |
---|---|
7 outDir = args[3] | 7 outDir = args[3] |
8 | 8 |
9 if (!require("gridExtra")) { | 9 if (!require("gridExtra")) { |
10 install.packages("gridExtra", repos="http://cran.xl-mirror.nl/") | 10 install.packages("gridExtra", repos="http://cran.xl-mirror.nl/") |
11 } | 11 } |
12 library (gridExtra) | 12 library(gridExtra) |
13 if (!require("ggplot2")) { | 13 if (!require("ggplot2")) { |
14 install.packages("ggplot2", repos="http://cran.xl-mirror.nl/") | 14 install.packages("ggplot2", repos="http://cran.xl-mirror.nl/") |
15 } | 15 } |
16 require(ggplot2) | 16 require(ggplot2) |
17 if (!require("plyr")) { | 17 if (!require("plyr")) { |
82 | 82 |
83 setwd(outDir) | 83 setwd(outDir) |
84 | 84 |
85 pV = ggplot(PRODFV) | 85 pV = ggplot(PRODFV) |
86 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)) | 86 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)) |
87 pV = pV + xlab("Summary of V gene") + ylab("Frequency") + ggtitle("Relative frequency of V gene usage") | |
87 | 88 |
88 png("VPlot.png",width = 1280, height = 720) | 89 png("VPlot.png",width = 1280, height = 720) |
89 pV | 90 pV |
90 dev.off(); | 91 dev.off(); |
91 | 92 |
92 pD = ggplot(PRODFD) | 93 pD = ggplot(PRODFD) |
93 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)) | 94 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)) |
95 pD = pD + xlab("Summary of D gene") + ylab("Frequency") + ggtitle("Relative frequency of D gene usage") | |
94 | 96 |
95 png("DPlot.png",width = 800, height = 600) | 97 png("DPlot.png",width = 800, height = 600) |
96 pD | 98 pD |
97 dev.off(); | 99 dev.off(); |
98 | 100 |
99 pJ = ggplot(PRODFJ) | 101 pJ = ggplot(PRODFJ) |
100 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)) | 102 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)) |
103 pJ = pJ + xlab("Summary of J gene") + ylab("Frequency") + ggtitle("Relative frequency of D gene usage") | |
101 | 104 |
102 png("JPlot.png",width = 800, height = 600) | 105 png("JPlot.png",width = 800, height = 600) |
103 pJ | 106 pJ |
104 dev.off(); | 107 dev.off(); |
105 | 108 |
106 | 109 |
107 plotVD <- function(dat){ | 110 plotVD <- function(dat){ |
108 ggplot() + | 111 ggplot() + |
109 geom_tile(data=dat, aes(x=factor(Top.V.Gene), y=factor(Top.D.Gene), fill=log)) + | 112 geom_tile(data=dat, aes(x=factor(Top.D.Gene), y=factor(Top.V.Gene), fill=log)) + |
110 theme(axis.text.x = element_text(angle = 90, hjust = 1)) + | 113 theme(axis.text.x = element_text(angle = 90, hjust = 1)) + |
111 scale_fill_gradient(low="white", high="red") + | 114 scale_fill_gradient(low="gold", high="blue") + |
112 ggtitle(unique(dat$Sample)) | 115 ggtitle(unique(dat$Sample)) + |
116 xlab("D genes") + | |
117 ylab("V Genes") | |
113 } | 118 } |
114 | 119 |
115 | 120 |
116 VandDCount = ddply(PRODF, c("Top.V.Gene", "Top.D.Gene", "Sample"), function(x) summary(x$VDJCDR3)) | 121 VandDCount = ddply(PRODF, c("Top.V.Gene", "Top.D.Gene", "Sample"), function(x) summary(x$VDJCDR3)) |
117 cartegianProductVD = expand.grid(Top.V.Gene = Vchain$v.name, Top.D.Gene = Dchain$v.name, Sample = unique(test$Sample)) | 122 cartegianProductVD = expand.grid(Top.V.Gene = Vchain$v.name, Top.D.Gene = Dchain$v.name, Sample = unique(test$Sample)) |
119 completeVD = merge(VandDCount, cartegianProductVD, all.y=TRUE) | 124 completeVD = merge(VandDCount, cartegianProductVD, all.y=TRUE) |
120 completeVD$Length = as.numeric(completeVD$Length) | 125 completeVD$Length = as.numeric(completeVD$Length) |
121 completeVD$log = log(completeVD$Length) | 126 completeVD$log = log(completeVD$Length) |
122 completeVD$log[is.na(completeVD$log)] = 0 | 127 completeVD$log[is.na(completeVD$log)] = 0 |
123 l = split(completeVD, f=completeVD[,"Sample"]) | 128 l = split(completeVD, f=completeVD[,"Sample"]) |
124 png("HeatmapVD%d.png", width=100+(15*length(Vchain$v.name)), height=100+(15*length(Dchain$v.name))) | 129 png("HeatmapVD%d.png", width=150+(15*length(Dchain$v.name)), height=100+(15*length(Vchain$v.name))) |
125 lapply(l, FUN=plotVD) | 130 lapply(l, FUN=plotVD) |
126 dev.off() | 131 dev.off() |
127 | 132 |
128 | 133 |
129 plotVJ <- function(dat){ | 134 plotVJ <- function(dat){ |
130 ggplot() + | 135 ggplot() + |
131 geom_tile(data=dat, aes(x=factor(Top.V.Gene), y=factor(Top.J.Gene), fill=log)) + | 136 geom_tile(data=dat, aes(x=factor(Top.J.Gene), y=factor(Top.V.Gene), fill=log)) + |
132 theme(axis.text.x = element_text(angle = 90, hjust = 1)) + | 137 theme(axis.text.x = element_text(angle = 90, hjust = 1)) + |
133 scale_fill_gradient(low="white", high="red") + | 138 scale_fill_gradient(low="gold", high="blue") + |
134 ggtitle(unique(dat$Sample)) | 139 ggtitle(unique(dat$Sample)) + |
140 xlab("J genes") + | |
141 ylab("V Genes") | |
135 } | 142 } |
136 | 143 |
137 VandJCount = ddply(PRODF, c("Top.V.Gene", "Top.J.Gene", "Sample"), function(x) summary(x$VDJCDR3)) | 144 VandJCount = ddply(PRODF, c("Top.V.Gene", "Top.J.Gene", "Sample"), function(x) summary(x$VDJCDR3)) |
138 cartegianProductVJ = expand.grid(Top.V.Gene = Vchain$v.name, Top.J.Gene = Jchain$v.name, Sample = unique(test$Sample)) | 145 cartegianProductVJ = expand.grid(Top.V.Gene = Vchain$v.name, Top.J.Gene = Jchain$v.name, Sample = unique(test$Sample)) |
139 | 146 |
140 completeVJ = merge(VandJCount, cartegianProductVJ, all.y=TRUE) | 147 completeVJ = merge(VandJCount, cartegianProductVJ, all.y=TRUE) |
141 completeVJ$Length = as.numeric(completeVJ$Length) | 148 completeVJ$Length = as.numeric(completeVJ$Length) |
142 completeVJ$log = log(completeVJ$Length) | 149 completeVJ$log = log(completeVJ$Length) |
143 completeVJ$log[is.na(completeVJ$log)] = 0 | 150 completeVJ$log[is.na(completeVJ$log)] = 0 |
144 l = split(completeVJ, f=completeVJ[,"Sample"]) | 151 l = split(completeVJ, f=completeVJ[,"Sample"]) |
145 png("HeatmapVJ%d.png", width=100+(15*length(Vchain$v.name)), height=100+(15*length(Jchain$v.name))) | 152 png("HeatmapVJ%d.png", width=150+(15*length(Jchain$v.name)), height=100+(15*length(Vchain$v.name))) |
146 lapply(l, FUN=plotVJ) | 153 lapply(l, FUN=plotVJ) |
147 dev.off() | 154 dev.off() |
148 | 155 |
149 plotDJ <- function(dat){ | 156 plotDJ <- function(dat){ |
150 ggplot() + | 157 ggplot() + |
151 geom_tile(data=dat, aes(x=factor(Top.D.Gene), y=factor(Top.J.Gene), fill=log)) + | 158 geom_tile(data=dat, aes(x=factor(Top.J.Gene), y=factor(Top.D.Gene), fill=log)) + |
152 theme(axis.text.x = element_text(angle = 90, hjust = 1)) + | 159 theme(axis.text.x = element_text(angle = 90, hjust = 1)) + |
153 scale_fill_gradient(low="white", high="red") + | 160 scale_fill_gradient(low="gold", high="blue") + |
154 ggtitle(unique(dat$Sample)) | 161 ggtitle(unique(dat$Sample)) + |
162 xlab("J genes") + | |
163 ylab("D Genes") | |
155 } | 164 } |
156 | 165 |
157 DandJCount = ddply(PRODF, c("Top.D.Gene", "Top.J.Gene", "Sample"), function(x) summary(x$VDJCDR3)) | 166 DandJCount = ddply(PRODF, c("Top.D.Gene", "Top.J.Gene", "Sample"), function(x) summary(x$VDJCDR3)) |
158 cartegianProductDJ = expand.grid(Top.D.Gene = Dchain$v.name, Top.J.Gene = Jchain$v.name, Sample = unique(test$Sample)) | 167 cartegianProductDJ = expand.grid(Top.D.Gene = Dchain$v.name, Top.J.Gene = Jchain$v.name, Sample = unique(test$Sample)) |
159 | 168 |
160 completeDJ = merge(DandJCount, cartegianProductDJ, all.y=TRUE) | 169 completeDJ = merge(DandJCount, cartegianProductDJ, all.y=TRUE) |
161 completeDJ$Length = as.numeric(completeDJ$Length) | 170 completeDJ$Length = as.numeric(completeDJ$Length) |
162 completeDJ$log = log(completeDJ$Length) | 171 completeDJ$log = log(completeDJ$Length) |
163 completeDJ$log[is.na(completeDJ$log)] = 0 | 172 completeDJ$log[is.na(completeDJ$log)] = 0 |
164 l = split(completeDJ, f=completeDJ[,"Sample"]) | 173 l = split(completeDJ, f=completeDJ[,"Sample"]) |
165 png("HeatmapDJ%d.png", width=100+(15*length(Dchain$v.name)), height=100+(15*length(Jchain$v.name))) | 174 png("HeatmapDJ%d.png", width=150+(15*length(Jchain$v.name)), height=100+(15*length(Dchain$v.name))) |
166 lapply(l, FUN=plotDJ) | 175 lapply(l, FUN=plotDJ) |
167 dev.off() | 176 dev.off() |
168 | 177 |
169 | 178 |
170 sampleFile <- file("samples.txt") | 179 sampleFile <- file("samples.txt") |