Contents
<%
cat(" Summary")
cat(" ")
if (exists("fig.raw") || exists("fig.unorm") || exists("fig.norm") || exists("fig.other")) {
cat(" Figures")
cat(" ")
#cat("")
cat("- Figures
")
if (!is.null(fig.raw$mds))
cat("- MDS
")
if (!is.null(fig.raw$biodetection))
cat("- Biotype detection
")
if (!is.null(fig.raw$countsbio))
cat("- Biotype counts
")
if (!is.null(fig.raw$saturation))
cat("- Biotype saturation
")
if (!is.null(fig.raw$readnoise))
cat("- Reads noise
")
if (!is.null(fig.raw$correl))
cat("- Correlation plots
")
if (!is.null(fig.raw$pairwise))
cat("- Pairwise scatterplots
")
if (!is.null(fig.raw$rnacomp))
cat("- RNA composition
")
if (!is.null(fig.unorm$boxplot) || !is.null(fig.norm$boxplot))
cat("- Boxplots
")
if (!is.null(fig.unorm$gcbias) || !is.null(fig.norm$gcbias))
cat("- GC-bias
")
if (!is.null(fig.unorm$lengthbias) || !is.null(fig.norm$lengthbias))
cat("- Length bias
")
if (!is.null(fig.unorm$meandiff) || !is.null(fig.norm$meandiff))
cat("- Mean-difference
")
if (!is.null(fig.unorm$meanvar) || !is.null(fig.norm$meanvar))
cat("- Mean-variance
")
if (!is.null(fig.other$filtered))
cat("- Filtered genes
")
if (!is.null(fig.stat$volcano)) {
cat("- Volcano plots
")
nn <- names(fig.stat$volcano)
counter <- 1
for (n in nn) {
cat("- ",n,"
",sep="")
counter <- counter + 1
}
cat(" ")
}
if (!is.null(fig.stat$deheatmap)) {
cat("- DEG heatmaps
")
nn <- names(fig.stat$deheatmap)
counter <- 1
for (n in nn) {
cat("- ",n,"
",sep="")
counter <- counter + 1
}
cat(" ")
}
if (!is.null(fig.stat$biodist)) {
cat("- DEG biotypes
")
nn <- names(fig.stat$biodist)
counter <- 1
for (n in nn) {
if (fig.stat$biodist[[n]] != "error") {
cat("- ",n,"
",sep="")
counter <- counter + 1
}
}
cat(" ")
}
if (!is.null(fig.venn$venn)) {
cat("- Venn diagrams
")
nn <- names(fig.venn$venn)
counter <- 1
for (n in nn) {
cat("- ",n,"
",sep="")
counter <- counter + 1
}
cat(" ")
}
}
#cat(" ")
cat(" ")
cat(" Results")
cat(" ")
#cat("- Results
")
nn <- names(html)
counter <- 1
for (n in nn) {
cat("- ",n,"
",sep="")
counter <- counter + 1
}
#cat(" ")
cat(" ")
cat(" References")
cat(" ")
%>
|
Summary
Analysis summary
Summary:
<%
if (from.raw) {
cat("The raw ",file.type," files, one for each RNA-Seq sample, were summarized to ")
if (count.type=="exon") cat("an exon ") else if (count.type=="gene") cat("a gene ")
cat("read counts table, ")
if (file.type=="bam" || file.type=="sam")
cat("using the Bioconductor package GenomicRanges. ")
else if (file.type=="bed")
cat("using the Bioconductor packages rtracklayer and GenomicRanges. ")
cat("In the final read counts table, each row represented ")
if (count.type=="exon") cat("one exon, ") else if (count.type=="gene") cat("one gene, ")
cat("each column one RNA-Seq sample and each cell, the corresponding read counts associated with each row and column.")
}
if (count.type=="exon") {
if (!is.null(exon.filters)) {
cat("The exon read counts were filtered for artifacts that could affect the subsequent normalization and statistical ")
cat("testing procedures as follows: ")
msg.exon.filters.min.active.exons <- NULL
if (!is.null(exon.filters$min.active.exons)) {
msg.exon.filters.min.active.exons <- paste(
"if an annotated gene had up to ",exon.filters$min.active.exons$exons.per.gene," exons, read presence was required in at ",
"least ",exon.filters$min.active.exons$min.exons," of the exons, else if an annotated gene had more than ",
exon.filters$min.active.exons$exons.per.gene," exons, then read presence was required in at least ",exon.filters$min.active.exons$frac,
"x⌈E⌉ exons, where ⌈ .⌉ is the ceiling mathematical function. The application ",
"of this filter resulted in the exclusion of ",length(exon.filter.result$min.active.exons)," genes from further analysis. ",
sep=""
)
}
cat(msg.exon.filters.min.active.exons,sep=", ")
cat("The total number of genes excluded due to the application of exon filters was ",sum(as.numeric(sapply(exon.filter.result,length))),". ",sep="")
}
cat("The final read counts for each gene model were calculated as the sums of their exon reads, creating a gene counts ")
cat("table where each row corresponded to an Ensembl gene model and each column corresponded to an RNA-Seq sample. ")
}
cat("The gene counts table was normalized for inherent systematic or experimental biases (e.g. sequencing depth, gene length, ")
cat("GC content bias etc.) using the Bioconductor package",report.messages$norm[[normalization]],"after removing genes that had ")
cat("zero counts over all the RNA-Seq samples (",length(the.zeros)," genes). The output of the normalization algorithm ",sep="")
cat("was a table with normalized counts, which can be used for differential expression analysis with statistical algorithms ")
cat("developed specifically for count data. ")
if (!is.null(gene.filters)) {
cat("Prior to the statistical testing procedure, the gene read counts were filtered for possible artifacts that could affect ")
cat("the subsequent statistical testing procedures. Genes presenting any of the following were excluded from further analysis: ")
latin.numbered <- c("i)","ii)","iii)","iv)","v)","vi)","vii)","viii)","ix)","x)","xi)","xii)","xiii)","xiv)","xv)")
counter <- 0
msg.gene.filters.length <- msg.gene.filters.expression.median <- msg.gene.filters.expression.mean <-
msg.gene.filters.expression.quantile <- msg.gene.filters.expression.known <- msg.gene.filters.expression.custom <-
msg.gene.filters.biotype <- msg.gene.filters.avg.reads <- NULL
if (!is.null(gene.filters$length)) {
counter <- counter + 1
msg.gene.filters.length <- paste(
latin.numbered[counter]," genes with length less than ",gene.filters$length$length," (",length(gene.filter.result$length),
" genes)",sep=""
)
}
if (!is.null(gene.filters$avg.reads)) {
counter <- counter + 1
msg.gene.filters.avg.reads <- paste(
latin.numbered[counter]," genes whose average reads per ",gene.filters$avg.reads$average.per.bp," bp was less than the ",
100*gene.filters$avg.reads$quantile," th quantile of the total normalized distribution of average reads per ",
gene.filters$avg.reads$average.per.bp,"bp (",length(gene.filter.result$average.per.bp)," genes with cutoff value ",
round(gene.filter.cutoff$avg.reads,digits=5)," average reads per ",gene.filters$avg.reads$average.per.bp," bp)",sep=""
)
}
if (!is.null(gene.filters$expression)) {
if (!is.null(gene.filters$expression$median) && gene.filters$expression$median) {
counter <- counter + 1
msg.gene.filters.expression.median <- paste(
latin.numbered[counter]," genes with read counts below the median read counts of the total normalized count distribution ",
"(",length(gene.filter.result$expression$median)," genes with cutoff value ",gene.filter.cutoff$expression$median,
" normalized read counts)",sep=""
)
}
if (!is.null(gene.filters$expression$mean) && gene.filters$expression$mean) {
counter <- counter + 1
msg.gene.filters.expression.mean <- paste(
latin.numbered[counter]," genes with read counts below the mean read counts of the total normalized counts distribution ",
"(",length(gene.filter.result$expression$mean)," genes with cutoff value ",gene.filter.cutoff$expression$mean,
" normalized read counts)",sep=""
)
}
if (!is.null(gene.filters$expression$quantile) && !is.na(gene.filters$expression$quantile)) {
counter <- counter + 1
msg.gene.filters.expression.quantile <- paste(
latin.numbered[counter]," genes with read counts below the ",100*gene.filters$expression$quantile," th ",
"quantile of the normalized counts distribution (",length(gene.filter.result$expression$quantile)," genes with cutoff value ",
gene.filter.cutoff$expression$quantile," normalized read counts)",sep=""
)
}
if (!is.null(gene.filters$expression$known) && !is.na(gene.filters$expression$known)) {
counter <- counter + 1
msg.gene.filters.expression.known <- paste(
latin.numbered[counter]," genes with read counts below the 90 th quantile of the counts of the following ",
"genes, known to not being expressed from the related literature: ",paste(gene.filters$expression$known,collapse=", "),
"(",length(gene.filter.result$expression$known)," genes with cutoff value",gene.filter.cutoff$expression$known,
" normalized read counts)",sep=""
)
}
if (!is.null(gene.filters$expression$custom) && !is.na(gene.filters$expression$custom)) {
counter <- counter + 1
msg.gene.filters.expression.custom <- paste(
latin.numbered[counter]," genes not passing the user defined filter provided to the metaseqr pipeline ",
"(",length(gene.filter.result$expression$custom)," genes with cutoff value",gene.filter.cutoff$expression$custom,
")",sep=""
)
}
}
if (!is.null(gene.filters$biotype)) {
counter <- counter + 1
msg.gene.filters.biotype <- paste(
latin.numbered[counter]," genes whose biotype matched the following: ",
paste(names(gene.filters$biotype)[which(unlist(gene.filters$biotype))],collapse=", "),
" (",length(gene.filter.result$biotype)," genes)",sep=""
)
}
cat(msg.gene.filters.length,msg.gene.filters.avg.reads,msg.gene.filters.expression.median,msg.gene.filters.expression.mean,
msg.gene.filters.expression.quantile,msg.gene.filters.expression.known,msg.gene.filters.expression.custom,sep=", ")
cat(". The total number of genes excluded due to the application of gene filters was ",sum(as.numeric(sapply(gene.filter.result,length))),". ",sep="")
cat("The total (unified) number of genes excluded due to the application of all filters was ",length(the.zeros) + length(the.dead),". ",sep="")
}
cat("The resulting gene counts table was subjected to differential expression analysis for the contrasts ",
paste(gsub("_vs_"," versus ",contrast),collapse=", "),sep="")
if (length(statistics)>1) {
cat(" using the Bioconductor packages ",paste(unlist(report.messages$stat[statistics],use.names=FALSE),collapse=", "),". ",sep="")
if (meta.p!="none") {
cat("In order to combine the statistical significance from multiple algorithms and perform meta-analysis, the ")
cat(report.messages$meta[[meta.p]],"method was applied. ")
}
} else {
cat(" using the Bioconductor package ",report.messages$stat[[statistics]],". ",sep="")
}
if (!is.na(pcut))
if (pcut==1) plasm <- 0.05 else plasm <- pcut
cat("The final numbers of differentially expressed genes were (per contrast): ")
msg.contrast <- character(length(contrast))
names(msg.contrast) <- contrast
for (cnt in contrast) {
if (!is.na(pcut) && length(which(sum.p.list[[cnt]] 0) {
if (length(are.there)==1) {
tmp.f <- log2(make.fold.change(cnt,sample.list,norm.genes.expr[are.there,,drop=FALSE],log.offset))
add.text.fu <- paste(" (",length(which(tmp.f>=1)),")",sep="")
add.text.fd <- paste(" (",length(which(tmp.f<=-1)),")",sep="")
add.text.fn <- paste(" (",length(which(abs(tmp.f)<1)),")",sep="")
}
else {
tmp.f <- log2(make.fold.change(cnt,sample.list,norm.genes.expr[are.there,],log.offset))
add.text.fu <- paste(" (",length(which(tmp.f>=1)),")",sep="")
add.text.fd <- paste(" (",length(which(tmp.f<=-1)),")",sep="")
add.text.fn <- paste(" (",length(which(abs(tmp.f)<1)),")",sep="")
}
}
else
add.text.fu <- add.text.fd <- add.text.fn <- NULL
}
else
add.text.fu <- add.text.fd <- add.text.fn <- NULL
msg.contrast[cnt] <- paste("for the contrast ",gsub("_vs_"," versus ",cnt),", ",length(which(sum.p.list[[cnt]]=1)),
add.text.fu," were up-regulated, ",length(which(tmp<=-1)),add.text.fd," were down-regulated and ",length(which(abs(tmp)<1)),add.text.fn,
" were not differentially expressed according to an absolute fold change cutoff value of 1 in log2 scale",sep="")
}
else
msg.contrast[cnt] <- paste("for the contrast ",gsub("_vs_"," versus ",cnt),", ",length(which(sum.p.list[[cnt]]
Read counts file: <%=counts.name%>
Conditions: <%=paste(names(sample.list),collapse=", ")%>
Samples included: <%=paste(unlist(sample.list),collapse=", ")%>
Samples excluded:
<%=
if (!is.null(exclude.list) && !is.na(exclude.list))
cat(paste(unlist(exclude.list),collapse=", "))
else
cat("none")
%>
Requested contrasts: <%=paste(contrast,collapse=", ")%>
Library sizes:
<%=
if (!is.null(libsize.list)) {
cat(" ")
for (n in names(libsize.list)) cat("- ",paste(n,libsize.list[[n]],sep=": "),"
")
cat(" ")
} else cat("not available","")
%>
Annotation: <%=annotation%>
Organism: <%=report.messages$org[[org]]%>
Annotation source: <%=report.messages$refdb[[refdb]]%>
Count type: <%=count.type%>
Exon filters:
<%=
if (!is.null(exon.filters)) {
cat(paste(names(exon.filters),collapse=", "),"")
for (ef in names(exon.filters)) {
cat(" ")
cat("- ",ef,"
",sep="")
for (efp in names(exon.filters[[ef]])) {
if (length(exon.filters[[ef]][[efp]])==1 && is.function(exon.filters[[ef]][[efp]]))
cat("- custom function
")
else if (length(exon.filters[[ef]][[efp]])==1)
cat("- ",paste(efp,exon.filters[[ef]][[efp]],sep=": "),"
",sep="")
else if (length(exon.filters[[ef]][[efp]])>1)
cat("- ",paste(efp,paste(exon.filters[[ef]][[efp]],collapse=", "),sep=": "),"
",sep="")
}
cat(" ")
cat(" ")
}
} else cat("none applied","")
%>
<%=
if (!is.null(preset))
cat(" Analysis preset:",report.messages$preset[[preset]],"")
%>
Gene filters:
<%=
if (!is.null(gene.filters)) {
cat(paste(names(gene.filters),collapse=", "),"")
for (gf in names(gene.filters)) {
cat(" ")
cat("- ",gf,"
",sep="")
for (gfp in names(gene.filters[[gf]])) {
if (length(gene.filters[[gf]][[gfp]])==1 && is.function(gene.filters[[gf]][[gfp]]))
cat("- custom function
")
else if (length(gene.filters[[gf]][[gfp]])==1)
cat("- ",paste(gfp,gene.filters[[gf]][[gfp]],sep=": "),"
",sep="")
else if (length(gene.filters[[gf]][[gfp]])>1)
cat("- ",paste(gfp,paste(gene.filters[[gf]][[gfp]],collapse=", "),sep=": "),"
",sep="")
}
cat(" ")
cat(" ")
}
} else cat("none applied","")
%>
Filter application: <%=report.messages$whenfilter[[when.apply.filter]]%>
Normalization algorithm: <%=report.messages$norm[[normalization]]%>
Normalization arguments:
<%=
if (!is.null(norm.args)) {
if (normalization=="each") {
for (n in names(norm.args)) {
cat(" Statistical arguments for ",report.messages$norm[[n]],": ",paste(names(norm.args[[n]]),collapse=", "))
if (length(norm.args[[n]])>0) {
cat(" ")
for (na in names(norm.args[[n]])) {
if (length(norm.args[[n]][[na]])==1 && is.function(norm.args[[n]][[na]]))
cat("- ",na,": ",as.character(substitute(norm.args[[na]])),"
",sep="")
else if (length(norm.args[[n]][[na]])==1)
cat("- ",paste(na,norm.args[[n]][[na]],sep=": "),"
")
else if (length(norm.args[[n]][[na]])>1)
cat("- ",paste(na,paste(norm.args[[n]][[na]],collapse=", "),sep=": "),"
")
}
cat(" ")
}
else cat("not available or not required")
}
}
else {
cat(paste(names(norm.args),collapse=", "),"")
cat(" ")
for (na in names(norm.args)) {
if (length(norm.args[[na]])==1 && is.function(norm.args[[na]]))
cat("- ",as.character(substitute(norm.args[[na]])),"
",sep="")
else if (length(norm.args[[na]])==1)
cat("- ",paste(na,norm.args[[na]],sep=": "),"
")
else if (length(norm.args[[na]])>1)
cat("- ",paste(na,paste(norm.args[[na]],collapse=", "),sep=": "),"
")
}
cat(" ")
}
} else cat("not available")
%>
Statistical algorithm(s): <%=paste(unlist(report.messages$stat[statistics],use.names=FALSE),collapse=", ")%>
<%=
if (!is.null(stat.args)) {
for (s in names(stat.args)) {
cat(" Statistical arguments for ",report.messages$stat[[s]],": ",paste(names(stat.args[[s]]),collapse=", "),sep="")
if (length(stat.args[[s]])>0) {
cat(" ")
for (sa in names(stat.args[[s]])) {
if (length(stat.args[[s]][[sa]])==1 && is.function(stat.args[[s]][[sa]]))
cat("- ",sa,": ",as.character(substitute(stat.args[[na]])),"
",sep="")
else if (length(stat.args[[s]][[sa]])==1)
cat("- ",paste(sa,stat.args[[s]][[sa]],sep=": "),"
")
else if (length(stat.args[[s]][[sa]])>1)
cat("- ",paste(sa,paste(stat.args[[s]][[sa]],collapse=", "),sep=": "),"
")
}
cat(" ")
}
else cat("not available or not required")
}
} else cat(" Statistical arguments not available")
%>
Meta-analysis method: <%=report.messages$meta[[meta.p]]%>
Multiple testing correction: <%=report.messages$adjust[[tolower(adjust.method)]]%>
p-value threshold: <%=if (!is.na(pcut)) cat(pcut) else cat("not available")%>
Logarithmic tranformation offset: <%=log.offset%>
Analysis preset: <%=if (!is.null(preset)) cat(preset) else ("not available")%>
Quality control plots: <%=paste(unlist(report.messages$plots[qc.plots],use.names=FALSE),collapse=", ")%>
Figure format: <%=paste(fig.format,collapse=", ")%>
Output directory: <%=if (!is.na(export.where)) cat(export.where) else cat("default")%>
Output data: <%=paste(unlist(report.messages$export[export.what],use.names=FALSE),collapse=", ")%>
Output scale(s): <%=paste(unlist(report.messages$export[export.scale],use.names=FALSE),collapse=", ")%>
Output values: <%=paste(unlist(report.messages$export[export.values],use.names=FALSE),collapse=", ")%>
Output statistics: <%=paste(unlist(report.messages$export[export.stats],use.names=FALSE),collapse=", ")%>
Total run time: <%=exec.time%>
Filtered genes
Number of filtered genes: <%=length(the.zeros) + length(the.dead)%> which is the union of
- Filtered because of zero reads: <%=length(the.zeros)%>
-
Filtered because of exon filters: <%=sum(as.numeric(sapply(exon.filter.result,length)))%>
<%=
if (sum(as.numeric(sapply(exon.filter.result,length)))!=0) {
cat(" which is the union of")
cat("
")
for (n in names(exon.filter.result)) {
cat("- ",n,": ",length(exon.filter.result[[n]]),"
")
}
cat(" ")
}
%>
-
Filtered because of gene filters: <%=length(unique(unlist(gene.filter.result)))%>
which is the union of
<%=
for (n in names(gene.filter.result)) {
if (!is.list(gene.filter.result[[n]])) {
if (!is.null(gene.filter.result[[n]]))
cat("- ",n,": ",length(unlist(gene.filter.result[[n]])),
" genes with filter cutoff value ",gene.filter.cutoff[[n]],"
",sep="")
}
else {
cat("- ",n,": ",length(unlist(gene.filter.result[[n]])),
" genes further decomposed to (filter name, filtered genes, filter cutoff):
",sep="")
cat("")
for (nn in names(gene.filter.result[[n]])) {
if (!is.null(gene.filter.result[[n]][[nn]]))
cat("- ",nn,": ",length(unlist(gene.filter.result[[n]][[nn]])),
" genes with filter cutoff value ",paste(gene.filter.cutoff[[n]][[nn]],
collapse=", "),"
",sep="")
}
cat(" ")
}
}
%>
Differentially expressed genes
Number of differentially expressed genes per contrast:
<%
if (!is.na(pcut) && pcut==1)
cat("The p-value cutoff during the analysis was set to 1 so as to retrieve the total gene list which passed the ",
"filtering procedure. Each gene in the list is accompanied by its statistical scores (p-value, FDR, etc.)")
%>
<%
for (cnt in contrast) {
cat("- ",cnt,": ",sep="")
if (!is.na(pcut) && length(which(sum.p.list[[cnt]]")
else if (is.na(pcut))
cat("no statistical threshold defined","
")
else {
if (!is.na(pcut) && pcut==1)
plasm <- 0.05
else
plasm <- pcut
if (adjust.method!="none") {
add.text.p <- paste("(",length(which(p.adjust(sum.p.list[[cnt]],adjust.method)0) {
if (length(are.there)==1) {
tmp.f <- log2(make.fold.change(cnt,sample.list,norm.genes.expr[are.there,,drop=FALSE],log.offset))
add.text.fu <- paste(" (",length(which(tmp.f>=1)),")",sep="")
add.text.fd <- paste(" (",length(which(tmp.f<=-1)),")",sep="")
add.text.fn <- paste(" (",length(which(abs(tmp.f)<1)),")",sep="")
}
else {
tmp.f <- log2(make.fold.change(cnt,sample.list,norm.genes.expr[are.there,],log.offset))
add.text.fu <- paste(" (",length(which(tmp.f>=1)),")",sep="")
add.text.fd <- paste(" (",length(which(tmp.f<=-1)),")",sep="")
add.text.fn <- paste(" (",length(which(abs(tmp.f)<1)),")",sep="")
}
}
else
add.text.fu <- add.text.fd <- add.text.fn <- NULL
}
else
add.text.fu <- add.text.fd <- add.text.fn <- NULL
cat(length(which(sum.p.list[[cnt]]=1)),
add.text.fu,"up regulated,",length(which(tmp.p<=-1)),add.text.fd,"down regulated and",length(which(abs(tmp.p)<1)),
add.text.fn,"not differentially expressed according to a p-value",has.fdr.text,"threshold of",plasm,"and an absolute",
"fold change cutoff value of 1 in log2 scale.")
}
else
cat(length(which(sum.p.list[[cnt]]1 && meta.p!="none") {
cat(" These numbers refer to the combined analysis performed by metaseqR. Per statistical algorithm, the differentially expressed genes are:")
cat("")
for (s in statistics) {
cat("- ",report.messages$stat[[s]],": ",sep="")
if (adjust.method!="none") {
add.text.p <- paste("(",length(which(p.adjust(cp.list[[cnt]][,s],adjust.method)=1)),")",sep="")
add.text.fd <- paste("(",length(which(tmp.f<=-1)),")",sep="")
add.text.fn <- paste("(",length(which(abs(tmp.f)<1)),")",sep="")
}
else
add.text.fu <- add.text.fd <- add.text.fn <- NULL
cat(length(which(cp.list[[cnt]][,s]=1)),
add.text.fu,"up regulated,",length(which(tmp.p<=-1)),add.text.fd,"down regulated and",length(which(abs(tmp.p)<1)),
add.text.fn,"not differentially expressed according to a p-value",has.fdr.text,"threshold of",plasm,"and an absolute",
"fold change cutoff value of 1 in log2 scale.")
}
else
cat(length(which(cp.list[[cnt]][,s]")
}
cat("
")
}
}
}
%>
<%
if (run.log) {
cat(" Run log")
cat(" ")
log.string <- paste(readLines(file.path(PROJECT.PATH$logs,"metaseqr_run.log")),collapse="---EOL---")
cat(gsub("---EOL---","",log.string))
cat(" ")
}
%>
<%
if (!is.null(fig.raw$mds)) {
cat(" Multidimensional scaling")
cat(" ")
}
%>
<%
if (!is.null(fig.raw$biodetection)) {
cat(" Biotype detection")
cat(" ")
}
%>
<%
if (!is.null(fig.raw$countsbio)) {
cat(" Biotype detection counts")
cat(" ")
}
%>
<%
if (!is.null(fig.raw$saturation)) {
cat(" Read and biotype saturation")
cat(" ")
}
%>
<%
if (!is.null(fig.raw$readnoise)) {
cat(" RNA-Seq reads noise ")
cat(" ")
}
%>
<%
if (!is.null(fig.raw$correl)) {
cat(" Correlation plots")
cat(" ")
}
%>
<%
if (!is.null(fig.raw$pairwise)) {
cat(" Pairwise scatterplots")
cat(" ")
}
%>
<%
if (!is.null(fig.unorm$boxplot) || !is.null(fig.norm$boxplot)) {
cat(" Boxplots")
cat(" ")
%>
<%
if (!is.null(fig.unorm$rnacomp) || !is.null(fig.norm$rnacomp)) {
cat(" RNA composition")
cat(" ")
%>
<%
if (!is.null(fig.unorm$gcbias) || !is.null(fig.norm$gcbias)) {
cat(" GC content bias")
cat(" ")
%>
<%
if (!is.null(fig.unorm$lengthbias) || !is.null(fig.norm$lengthbias)) {
cat(" Gene/transcript length bias")
cat(" ")
%>
<%
if (!is.null(fig.unorm$meandiff) || !is.null(fig.norm$meandiff)) {
cat(" Mean-difference")
cat(" ")
}
%>
<%
if (!is.null(fig.unorm$meanvar) || !is.null(fig.norm$meanvar)) {
cat(" Mean-variance")
cat(" ")
}
%>
<%
if (!is.null(fig.other$filtered)) {
cat(" Chromosome and biotype distribution of filtered genes")
cat(" ")
}
%>
<%
if (!is.null(fig.stat$volcano)) {
cat(" Volcano plots")
cat(" ")
}
%>
<%
if (!is.null(fig.stat$deheatmap)) {
cat(" DEG heatmaps")
cat(" ")
}
%>
<%
if (!is.null(fig.stat$biodist)) {
cat(" Chromosome and biotype distributions of DEGs")
cat(" ")
}
%>
<%
if (!is.null(fig.venn$venn)) {
cat(" Meta-analysis Venn diagrams")
cat(" ")
}
%>
Results
<%
if (!is.null(html)) {
nn <- names(html)
for (n in nn) {
if (is.null(report.top))
top.text <- "all the statistically significant genes"
else
top.text <- paste("the top ",round(100*report.top),"% statistically significant genes (use the download links below the table to retrieve the whole list)",sep="")
cat(" ")
cat(" DEG table for the contrast ",n,"",sep="")
cat(" ")
cat(" The following table presents ",top.text," for the contrast ",n,". The fields of the table correspond to the ",
"requested features to be exported. The table can be searched using the search field on the top right. ",sep="")
cat(html[[n]],"")
cat(" Download the DEG result list for ",n,".",sep="")
if (!is.null(gene.counts.zero) || !is.null(gene.counts.dead))
cat(" Download the whole result list for ",n,".",sep="")
cat(" ")
}
if (export.counts.table) {
cat(" ")
if (file.exists(file.path(PROJECT.PATH[["lists"]],"raw_counts_table.txt.gz")))
cat(" Download the raw read counts table for the experiment.",sep="")
cat(" Download the normalized read counts table for the experiment.",sep="")
cat(" ")
}
counter <- 1
cat("")
}
%>
References
<%
refs <- unique(c(
report.messages$references$filein[[file.type]],
report.messages$references$norm[[normalization]],
unlist(report.messages$references$stat[statistics],use.names=FALSE),
unlist(report.messages$references$figure[qc.plots],use.names=FALSE),
report.messages$references$multiple[[adjust.method]],
report.messages$references$meta[[meta.p]]
))
cat(" ")
%>
|
|