annotate phyloseq_ordinate_plot.R @ 1:52f009b255a1 draft default tip

Updated tool
author simon-gladman
date Thu, 22 Nov 2018 07:07:27 -0500
parents ae9cd53b7760
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
1 library('getopt')
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
2 library('ape')
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
3 suppressPackageStartupMessages(library('phyloseq'))
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
4 library(biomformat)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
5 library(plyr)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
6 Sys.setenv("DISPLAY"=":1")
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
7 library("ggplot2")
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
8 suppressPackageStartupMessages(library("doParallel"))
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
9 ncores = ceiling(detectCores() * 0.8)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
10 registerDoParallel(cores=ncores)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
11
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
12 options(warn=-1)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
13
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
14 theme_set(theme_bw())
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
15
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
16 #http://saml.rilspace.com/creating-a-galaxy-tool-for-r-scripts-that-output-images-and-pdfs
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
17 #http://joey711.github.io/phyloseq-demo/phyloseq-demo.html
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
18 option_specification = matrix(c(
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
19 'otu_table','o',2,'character',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
20 'tax_table','t',2,'character',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
21 'meta_table','m',2,'character',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
22 'biom','b',2,'character',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
23 'subset','s',2,'character',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
24 'method','n',2,'character',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
25 'distance','d',2,'character',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
26 'kingdom','k',2,'character',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
27 'plottype','e',2,'numeric',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
28 'category','g',2,'numeric',
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
29 'log','l',2,'character',
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
30 'outdir','r',2,'character',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
31 'htmlfile','h',2,'character'
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
32 ),byrow=TRUE,ncol=4);
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
33
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
34
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
35 options <- getopt(option_specification);
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
36 options(bitmapType="cairo")
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
37
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
38 if (!is.null(options$outdir)) {
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
39 # Create the directory
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
40 dir.create(options$outdir,FALSE)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
41 }
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
42
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
43
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
44
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
45 method<-options$method
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
46 ### select a kingdom for phyloseq plot (e.g., "phylum")
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
47 #kingdom_str<-colnames(tax_table)[options$kingdom]
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
48 kingdom_str<-options$kingdom
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
49 distance<-options$distance
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
50 plottype<-options$plottype
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
51
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
52 ### prepare the directory and file name
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
53 pdffile <- gsub("[ ]+", "", paste(options$outdir,"/pdffile.pdf"))
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
54 pngfile_nmds <- gsub("[ ]+", "", paste(options$outdir,"/nmds.png"))
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
55 pngfile_nmds_facet <- gsub("[ ]+", "", paste(options$outdir,"/nmds_facet.png"))
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
56 htmlfile <- gsub("[ ]+", "", paste(options$htmlfile))
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
57 output_summary <- gsub("[ ]+", "", paste(options$log))
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
58
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
59 ### This function accepts different two different type of BIOM file format
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
60 readBIOM<-function(inBiom){
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
61 tryCatch({
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
62 phyloseq_obj<-import_biom(inBiom,parallel=TRUE)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
63 return(phyloseq_obj)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
64 },
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
65 error=function(e){
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
66 biom_obj<-read_biom(inBiom)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
67
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
68 otu_matrix = as(biom_data(biom_obj), "matrix")
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
69 OTU_TABLE = otu_table(otu_matrix, taxa_are_rows=TRUE)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
70
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
71 taxonomy_matrix = as.matrix(observation_metadata(biom_obj), rownames.force=TRUE)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
72 TAXONOMY_TABLE = tax_table(taxonomy_matrix)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
73
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
74 metadata.temp<-sample_metadata(biom_obj)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
75 METADATA_TABLE<-plyr::ldply(metadata.temp, rbind)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
76 rownames(METADATA_TABLE)<-as.character(METADATA_TABLE$.id)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
77
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
78 phyloseq_obj = phyloseq(OTU_TABLE, TAXONOMY_TABLE,sample_data(METADATA_TABLE))
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
79 return(phyloseq_obj)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
80 }
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
81 )
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
82 }
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
83
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
84
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
85 create_OTU_PDF<-function(pdf_file,phyloseq_obj,phyloseq_ord,kingdom_str,htmlfile,pngfile_nmds,pngfile_nmds_facet){
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
86 pdf(pdf_file);
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
87 p1<-plot_ordination(phyloseq_obj,phyloseq_ord,type="taxa",color=kingdom_str,title="taxa") + theme(legend.position="bottom",legend.box="vertical",legend.direction="horizontal")
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
88 print(p1)
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
89 p2<-plot_ordination(phyloseq_obj,phyloseq_ord,type="taxa",color=kingdom_str,title="taxa") + facet_wrap(formula(paste('~',kingdom_str)),3) + theme(legend.position="bottom",legend.box="vertical",legend.direction="horizontal")
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
90 print(p2)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
91 garbage<-dev.off();
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
92
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
93 #png('nmds.png')
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
94 bitmap(pngfile_nmds,"png16m",res=120)
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
95 p3<-plot_ordination(phyloseq_obj,phyloseq_ord,type="taxa",color=kingdom_str,title="taxa") + theme(legend.position="bottom",legend.box="vertical",legend.direction="horizontal")
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
96 print(p3)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
97 garbage<-dev.off()
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
98
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
99 #png('nmds_facet.png')
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
100 bitmap(pngfile_nmds_facet,"png16m",res=120)
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
101 p4<-plot_ordination(phyloseq_obj,phyloseq_ord,type="taxa",color=kingdom_str,title="taxa") + facet_wrap(formula(paste('~',kingdom_str)),3) + theme(legend.position="bottom",legend.box="vertical",legend.direction="horizontal")
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
102 print(p4)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
103 garbage<-dev.off()
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
104
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
105 create_HTML_1(htmlfile)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
106 }
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
107
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
108 create_SAMPLE_PDF<-function(pdf_file,phyloseq_obj,phyloseq_ord,htmlfile,pngfile_nmds,category_type){
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
109 pdf(pdf_file);
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
110 p <- plot_ordination(phyloseq_obj, phyloseq_ord, type="samples", color=category_type)
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
111 p <- p + geom_point(aes(fill=category_type)) + geom_point(size=5) + ggtitle(paste("Samples - Stress value",formatC(phyloseq_ord$stress,digits=4,format="f"),sep=":")) + theme(legend.position="bottom",legend.box="vertical",legend.direction="horizontal")
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
112 print(p)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
113 garbage<-dev.off();
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
114
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
115 #png('nmds.png')
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
116 bitmap(pngfile_nmds,"png16m",res=120)
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
117 p1 <- plot_ordination(phyloseq_obj, phyloseq_ord, type="samples", color=category_type)
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
118 p1 <- p1 + geom_point(aes(fill=category_type)) + geom_point(size=5) + ggtitle(paste("Samples - Stress value",formatC(phyloseq_ord$stress,digits=4,format="f"),sep=":")) + theme(legend.position="bottom",legend.box="vertical",legend.direction="horizontal")
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
119 print(p1)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
120 garbage<-dev.off();
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
121
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
122 create_HTML_2(htmlfile)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
123 }
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
124
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
125 create_BIPLOT_PDF<-function(pdf_file,phyloseq_obj,phyloseq_ord,kingdom_str,htmlfile,pngfile_nmds,category_type){
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
126 pdf(pdf_file);
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
127 print(category_type)
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
128 p_biplot <- plot_ordination(phyloseq_obj, phyloseq_ord, type="biplot", color=category_type, shape=kingdom_str,title="BIPLOT") + theme(legend.position="bottom",legend.box="vertical",legend.direction="horizontal")
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
129 print(p_biplot)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
130 garbage<-dev.off();
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
131
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
132 bitmap(pngfile_nmds,"png16m",res=120)
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
133 p_biplot_png <- plot_ordination(phyloseq_obj, phyloseq_ord, type="biplot", color=category_type, shape=kingdom_str,title="BIPLOT") + theme(legend.position="bottom",legend.box="vertical",legend.direction="horizontal")
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
134 print(p_biplot_png)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
135 garbage<-dev.off();
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
136
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
137 create_HTML_2(htmlfile)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
138 }
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
139
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
140 create_SPLITPLOT_PDF<-function(pdf_file,phyloseq_obj,phyloseq_ord,kingdom_str,htmlfile,pngfile_nmds,category_type){
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
141 pdf(pdf_file,width=10, height=6);
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
142 split_plot <- plot_ordination(phyloseq_obj, phyloseq_ord, type="split", color=kingdom_str, shape=kingdom_str, label=category_type, title="SPLIT PLOT")
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
143 split_plot <- split_plot + theme(plot.margin = unit(c(12,18,12,18),"pt"),legend.position="bottom",legend.box="vertical",legend.direction="horizontal")
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
144 print(split_plot)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
145 garbage<-dev.off();
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
146
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
147 bitmap(pngfile_nmds,"png16m", res=120)
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
148 split_plot <- plot_ordination(phyloseq_obj, phyloseq_ord, type="split", color=kingdom_str, shape=kingdom_str, label=category_type, title="SPLIT PLOT")
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
149 split_plot <- split_plot + theme(plot.margin = unit(c(12,18,12,18),"pt"),legend.position="bottom",legend.box="vertical",legend.direction="horizontal")
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
150 print(split_plot)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
151 garbage<-dev.off();
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
152 create_HTML_2(htmlfile)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
153 }
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
154
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
155 create_HTML_1<-function(htmlfile){
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
156 htmlfile_handle <- file(htmlfile)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
157 html_output = c('<html><body>',
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
158 '<table align="center">',
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
159 '<tr>',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
160 '<td valign="middle" style="vertical-align:middle;">',
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
161 '<a href="pdffile.pdf"><img src="nmds.png" width="800" height="800"/></a>',
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
162 '</td>',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
163 '</tr>',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
164 '<tr>',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
165 '<td valign="middle" style="vertical-align:middle;">',
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
166 '<a href="pdffile.pdf"><img src="nmds_facet.png" width="800" height="800"/></a>',
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
167 '</td>',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
168 '</tr>',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
169 '</table>',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
170 '</html></body>');
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
171 writeLines(html_output, htmlfile_handle);
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
172 close(htmlfile_handle);
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
173 }
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
174
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
175 create_HTML_2<-function(htmlfile){
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
176 htmlfile_handle <- file(htmlfile)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
177 html_output = c('<html><body>',
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
178 '<table align="center">',
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
179 '<tr>',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
180 '<td valign="middle" style="vertical-align:middle;">',
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
181 '<a href="pdffile.pdf"><img src="nmds.png" width="800" height="800"/></a>',
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
182 '</td>',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
183 '</tr>',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
184 '</table>',
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
185 '</html></body>');
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
186 writeLines(html_output, htmlfile_handle);
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
187 close(htmlfile_handle);
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
188 }
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
189
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
190 if(!is.null(options$biom)){
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
191
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
192 #physeq<-import_biom(options$biom)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
193 physeq<-readBIOM(options$biom)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
194
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
195 if(length(rank_names(physeq)) == 8){
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
196 tax_table(physeq) <- tax_table(physeq)[,-1]
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
197 colnames(tax_table(physeq)) <- c("Kingdom", "Phylum", "Class", "Order", "Family", "Genus", "Species")
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
198 } else {
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
199 colnames(tax_table(physeq)) <- c("Kingdom", "Phylum", "Class", "Order", "Family", "Genus", "Species")
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
200 }
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
201
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
202 ### select column name from sample table for nmds plot
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
203 ## which(colnames(sample_data(biom)) == "vegetation_type_id")
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
204 #category_type<-colnames(sample_data(physeq))[options$subset]
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
205 category_type <- options$subset
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
206
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
207 ### obtain the unique value in the selected column from sample table
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
208 category_option<-unique(sample_data(physeq))[,options$subset]
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
209
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
210 }else{
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
211
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
212 ### read the data into correct data type to create phyloseq object
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
213 otu_table<-as.matrix(read.table(options$otu_table,header=T,sep="\t"))
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
214 tax_table<-as.matrix(read.table(options$tax_table,header=T,sep="\t"))
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
215 sample_table<-read.table(options$meta_table,header=T,sep="\t",stringsAsFactors=F)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
216
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
217
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
218 ### select column name from sample table for nmds plot
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
219 category_type<-colnames(sample_table)[options$category]
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
220
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
221 ### obtain the unique value in the selected column from sample table
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
222 category_option<-unique(sample_table[,options$category])
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
223
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
224
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
225 ### create a sample object for phyloseq
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
226 sample_object<-sample_data(sample_table)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
227
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
228 ### create otu object for phyloseq
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
229 OTU<-otu_table(otu_table, taxa_are_rows = TRUE)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
230
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
231 ### create tax object for phyloseq
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
232 TAX<-tax_table(tax_table)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
233
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
234 ### create a phyloseq object
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
235 physeq = phyloseq(OTU,TAX,sample_object)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
236 }
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
237
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
238 category_input = get_variable(physeq, category_type) %in% category_option
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
239 sample_data(physeq)$category_input <- factor(category_input)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
240
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
241 # compute distance matrix
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
242 physeq_ord<-ordinate(physeq,method,distance)
1
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
243
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
244 # get column sum
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
245 sum_table<-data.frame(column_sum=as.matrix(colSums(otu_table(physeq))))
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
246
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
247 rowname_table<-data.frame(sample=rownames(sum_table))
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
248
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
249 output_table<-as.data.frame(cbind(rowname_table,sum_table))
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
250
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
251 output_table<-output_table[order(output_table$column_sum),]
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
252
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
253 # Reformat distance matrix
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
254 distance_matrix<-as.data.frame(physeq_ord$points)
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
255 distance_matrix<-cbind(sample=rownames(distance_matrix),distance_matrix)
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
256
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
257 sink(output_summary)
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
258 cat('--------------------------------------')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
259 cat('\n')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
260 cat('Stress value')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
261 cat('\n')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
262 cat(formatC(physeq_ord$stress,digits=4,format="f"))
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
263 cat('\n')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
264 cat('--------------------------------------')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
265 cat('\n')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
266 cat('Sample - Column Sum')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
267 cat('\n')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
268 cat('--------------------------------------')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
269 cat('\n')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
270 write.table(output_table,row.names=F,quote=F)
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
271 cat('\n')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
272 cat('--------------------------------------')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
273 cat('\n')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
274 cat('Distance Matrix')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
275 cat('\n')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
276 cat('--------------------------------------')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
277 cat('\n')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
278 write.table(distance_matrix,row.names=F,quote=F)
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
279 cat('\n')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
280 cat('--------------------------------------')
52f009b255a1 Updated tool
simon-gladman
parents: 0
diff changeset
281 sink()
0
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
282
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
283 if(plottype == 1){
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
284 #kingdom_str = colnames(tax_table)[2]
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
285 create_OTU_PDF(pdffile,physeq,physeq_ord,kingdom_str,htmlfile,pngfile_nmds,pngfile_nmds_facet)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
286 }else if(plottype == 2){
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
287 create_SAMPLE_PDF(pdffile,physeq,physeq_ord,htmlfile,pngfile_nmds,category_type)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
288 }else if(plottype == 3){
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
289 create_BIPLOT_PDF(pdffile,physeq,physeq_ord,kingdom_str,htmlfile,pngfile_nmds,category_type)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
290 }else{
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
291 create_SPLITPLOT_PDF(pdffile,physeq,physeq_ord,kingdom_str,htmlfile,pngfile_nmds,category_type)
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
292 }
ae9cd53b7760 Initial upload
simon-gladman
parents:
diff changeset
293