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 ",trans.level,"s
",sep="")
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 (trans.level=="gene") {
if (count.type=="exon")
cat("an exon ")
else if (count.type=="gene")
cat("a gene ")
else if (count.type=="utr")
cat("a 3'UTR ")
}
else if (trans.level=="transcript") {
if (count.type=="exon")
cat("an exon ")
else if (count.type=="utr")
cat("a 3'UTR ")
}
else if (trans.level=="exon") {
if (count.type=="exon")
cat("an exon ")
}
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 ",trans.level," 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 ",trans.level," 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)," ",trans.level,"s from further analysis. ",
sep=""
)
}
cat(msg.exon.filters.min.active.exons,sep=", ")
cat("The total number of ",trans.level,"s 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 ",trans.level," model were calculated as the sums of their exon reads, creating a ",trans.level," counts ")
cat("table where each row corresponded to an Ensembl ",trans.level," model and each column corresponded to an RNA-Seq sample. ")
}
cat("The ",trans.level," counts table was normalized for inherent systematic or experimental biases (e.g. sequencing depth, ",trans.level," length, ")
cat("GC content bias etc.) using the Bioconductor package",report.messages$norm[[normalization]],"after removing ",trans.level,"s that had ")
cat("zero counts over all the RNA-Seq samples (",length(the.zeros)," ",trans.level,"s). 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 ",trans.level," read counts were filtered for possible artifacts that could affect ")
cat("the subsequent statistical testing procedures. Genes/transcripts 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 <- msg.gene.filters.presence <- NULL
if (!is.null(gene.filters$length)) {
counter <- counter + 1
msg.gene.filters.length <- paste(
latin.numbered[counter]," ",trans.level,"s 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]," ",trans.level,"s 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)," ",trans.level,"s 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]," ",trans.level,"s with read counts below the median read counts of the total normalized count distribution ",
"(",length(gene.filter.result$expression$median)," ",trans.level,"s 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]," ",trans.level,"s with read counts below the mean read counts of the total normalized counts distribution ",
"(",length(gene.filter.result$expression$mean)," ",trans.level,"s 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]," ",trans.level,"s with read counts below the ",100*gene.filters$expression$quantile," th ",
"quantile of the normalized counts distribution (",length(gene.filter.result$expression$quantile)," ",trans.level,"s 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]," ",trans.level,"s with read counts below the 90 th quantile of the counts of the following ",
trans.level,"s, known to not being expressed from the related literature: ",paste(gene.filters$expression$known,collapse=", "),
"(",length(gene.filter.result$expression$known)," ",trans.level,"s 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)," ",trans.level,"s 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]," ",trans.level,"s whose biotype matched the following: ",
paste(names(gene.filters$biotype)[which(unlist(gene.filters$biotype))],collapse=", "),
" (",length(gene.filter.result$biotype)," ",trans.level,"s)",sep=""
)
}
if (!is.null(gene.filters$presence)) {
counter <- counter + 1
msg.gene.filters.presence <- paste(
latin.numbered[counter]," ",trans.level,"s where ",gene.filters$presence$frac*100,"% of samples were not above ",gene.filters$presence$min.count," counts (",length(gene.filter.result$presence)," ",trans.level,"s)",sep=""
)
if (gene.filters$presence$per.condition)
msg.gene.filters.presence <- paste(msg.gene.filters.presence," condition-wise",sep="")
else
msg.gene.filters.presence <- paste(msg.gene.filters.presence," across all samples",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,msg.gene.filters.biotype,msg.gene.filters.presence,sep=", ")
cat(". The total number of ",trans.level,"s excluded due to the application of ",trans.level," filters was ",sum(as.numeric(sapply(gene.filter.result,length))),". ",sep="")
cat("The total (unified) number of ",trans.level,"s excluded due to the application of all filters was ",length(the.zeros) + length(the.dead),". ",sep="")
}
cat("The resulting ",trans.level," 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 ",trans.level,"s 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,,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
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%>
<%=
if (count.type=="utr" && utr.flank>0) {
cat(" 3' UTR flanking :: ",utr.flank,"")
}
%>
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%>
<%=cat("Filtered ",trans.level,"s",sep="")%>
<%cat("Number of filtered ",trans.level,"s:")%> <%=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]])),
" ",trans.level,"s further decomposed to (filter name, filtered ",trans.level,"s, 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]])),
" ",trans.level,"s with filter cutoff value ",paste(gene.filter.cutoff[[n]][[nn]],
collapse=", "),"
",sep="")
}
cat(" ")
}
}
%>
<%cat("Differentially expressed ",trans.level,"s",sep="")%>
<%cat("Number of differentially expressed ",trans.level,"s per contrast: ",sep="")%>
<%
if (!is.na(pcut) && pcut==1)
cat("The p-value cutoff during the analysis was set to 1 so as to retrieve the total ",trans.level," list which passed the ",
"filtering procedure. Each ",trans.level," 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]]",sep="")
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,,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
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.",sep="")
}
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 ",trans.level,"s 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.",sep="")
}
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 ",trans.level,"s")
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 <- paste("all the statistically significant ", trans.level,"s",sep="")
else
top.text <- paste("the top ",round(100*report.top),"% statistically significant ",trans.level,"s (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(" ")
%>
|
|