annotate hairpinTool.R @ 1:cad1cc829e2e

- test commit
author shian_su <registertonysu@gmail.com>
date Tue, 18 Mar 2014 12:45:36 +1100
parents 8848246b5612
children 2ce545c85287
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
1 # ARGS: 1.inputType -String specifying format of input (fastq or table)
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
2 # IF inputType is "fastQ":
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
3 # 2*.fastqPath -One or more strings specifying path to fastq files
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
4 # 2.annoPath -String specifying path to hairpin annotation table
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
5 # 3.samplePath -String specifying path to sample annotation table
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
6 # 4.barStart -Integer specifying starting position of barcode
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
7 # 5.barEnd -Integer specifying ending position of barcode
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
8 # 6.hpStart -Integer specifying startins position of hairpin
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
9 # unique region
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
10 # 7.hpEnd -Integer specifying ending position of hairpin
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
11 # unique region
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
12 # ###
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
13 # IF inputType is "counts":
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
14 # 2.countPath -String specifying path to count table
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
15 # 3.annoPath -String specifying path to hairpin annotation table
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
16 # 4.samplePath -String specifying path to sample annotation table
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
17 # ###
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
18 # 8.cpmReq -Float specifying cpm requirement
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
19 # 9.sampleReq -Integer specifying cpm requirement
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
20 # 10.fdrThresh -Float specifying the FDR requirement
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
21 # 11.lfcThresh -Float specifying the log-fold-change requirement
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
22 # 12.workMode -String specifying exact test or GLM usage
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
23 # 13.htmlPath -String specifying path to HTML file
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
24 # 14.folderPath -STring specifying path to folder for output
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
25 # IF workMode is "classic" (exact test)
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
26 # 15.pairData[2] -String specifying first group for exact test
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
27 # 16.pairData[1] -String specifying second group for exact test
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
28 # ###
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
29 # IF workMode is "glm"
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
30 # 15.contrastData -String specifying contrasts to be made
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
31 # 16.roastOpt -String specifying usage of gene-wise tests
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
32 # 17.hairpinReq -String specifying hairpin requirement for gene-
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
33 # wise test
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
34 # 18.selectOpt -String specifying type of selection for barcode
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
35 # plots
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
36 # 19.selectVals -String specifying members selected for barcode
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
37 # plots
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
38 #
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
39 # OUT: Bar Plot of Counts Per Index
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
40 # Bar Plot of Counts Per Hairpin
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
41 # MDS Plot
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
42 # Smear Plot
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
43 # Barcode Plots (If Genewise testing was selected)
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
44 # Top Expression Table
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
45 # HTML file linking to the ouputs
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
46 #
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
47 # Author: Shian Su - registertonysu@gmail.com - Jan 2014
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
48
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
49 # Record starting time
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
50 timeStart <- as.character(Sys.time())
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
51
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
52 # Loading and checking required packages
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
53 library(methods, quietly=TRUE, warn.conflicts=FALSE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
54 library(statmod, quietly=TRUE, warn.conflicts=FALSE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
55 library(splines, quietly=TRUE, warn.conflicts=FALSE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
56 library(edgeR, quietly=TRUE, warn.conflicts=FALSE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
57 library(limma, quietly=TRUE, warn.conflicts=FALSE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
58
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
59 if (packageVersion("edgeR") < "3.5.23") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
60 message("Please update 'edgeR' to version >= 3.5.23 to run this script")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
61 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
62
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
63 ################################################################################
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
64 ### Function declarations
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
65 ################################################################################
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
66
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
67 # Function to sanitise contrast equations so there are no whitespaces
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
68 # surrounding the arithmetic operators, leading or trailing whitespace
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
69 sanitiseEquation <- function(equation) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
70 equation <- gsub(" *[+] *", "+", equation)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
71 equation <- gsub(" *[-] *", "-", equation)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
72 equation <- gsub(" *[/] *", "/", equation)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
73 equation <- gsub(" *[*] *", "*", equation)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
74 equation <- gsub("^\\s+|\\s+$", "", equation)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
75 return(equation)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
76 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
77
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
78 # Function to sanitise group information
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
79 sanitiseGroups <- function(string) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
80 string <- gsub(" *[,] *", ",", string)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
81 string <- gsub("^\\s+|\\s+$", "", string)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
82 return(string)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
83 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
84
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
85 # Function to change periods to whitespace in a string
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
86 unmake.names <- function(string) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
87 string <- gsub(".", " ", string, fixed=TRUE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
88 return(string)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
89 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
90
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
91 # Function has string input and generates an output path string
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
92 makeOut <- function(filename) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
93 return(paste0(folderPath, "/", filename))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
94 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
95
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
96 # Function has string input and generates both a pdf and png output strings
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
97 imgOut <- function(filename) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
98 assign(paste0(filename, "Png"), makeOut(paste0(filename,".png")),
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
99 envir = .GlobalEnv)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
100 assign(paste0(filename, "Pdf"), makeOut(paste0(filename,".pdf")),
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
101 envir = .GlobalEnv)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
102 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
103
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
104 # Create cat function default path set, default seperator empty and appending
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
105 # true by default (Ripped straight from the cat function with altered argument
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
106 # defaults)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
107 cata <- function(..., file = htmlPath, sep = "", fill = FALSE, labels = NULL,
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
108 append = TRUE) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
109 if (is.character(file))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
110 if (file == "")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
111 file <- stdout()
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
112 else if (substring(file, 1L, 1L) == "|") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
113 file <- pipe(substring(file, 2L), "w")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
114 on.exit(close(file))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
115 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
116 else {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
117 file <- file(file, ifelse(append, "a", "w"))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
118 on.exit(close(file))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
119 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
120 .Internal(cat(list(...), file, sep, fill, labels, append))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
121 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
122
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
123 # Function to write code for html head and title
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
124 HtmlHead <- function(title) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
125 cata("<head>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
126 cata("<title>", title, "</title>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
127 cata("</head>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
128 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
129
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
130 # Function to write code for html links
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
131 HtmlLink <- function(address, label=address) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
132 cata("<a href=\"", address, "\" target=\"_blank\">", label, "</a><br />\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
133 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
134
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
135 # Function to write code for html images
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
136 HtmlImage <- function(source, label=source, height=600, width=600) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
137 cata("<img src=\"", source, "\" alt=\"", label, "\" height=\"", height)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
138 cata("\" width=\"", width, "\"/>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
139 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
140
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
141 # Function to write code for html list items
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
142 ListItem <- function(...) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
143 cata("<li>", ..., "</li>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
144 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
145
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
146 TableItem <- function(...) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
147 cata("<td>", ..., "</td>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
148 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
149
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
150 TableHeadItem <- function(...) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
151 cata("<th>", ..., "</th>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
152 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
153 ################################################################################
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
154 ### Input Processing
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
155 ################################################################################
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
156
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
157 # Grabbing arguments from command line
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
158 argv <- commandArgs(TRUE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
159
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
160 # Remove fastq file paths after collecting from argument vector
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
161 inputType <- as.character(argv[1])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
162 if (inputType=="fastq") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
163 fastqPath <- as.character(gsub("fastq::", "", argv[grepl("fastq::", argv)],
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
164 fixed=TRUE))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
165 argv <- argv[!grepl("fastq::", argv, fixed=TRUE)]
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
166 annoPath <- as.character(argv[2])
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
167 samplePath <- as.character(argv[3])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
168 barStart <- as.numeric(argv[4])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
169 barEnd <- as.numeric(argv[5])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
170 hpStart <- as.numeric(argv[6])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
171 hpEnd <- as.numeric(argv[7])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
172 } else if (inputType=="counts") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
173 countPath <- as.character(argv[2])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
174 annoPath <- as.character(argv[3])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
175 samplePath <- as.character(argv[4])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
176 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
177
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
178 cpmReq <- as.numeric(argv[8])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
179 sampleReq <- as.numeric(argv[9])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
180 fdrThresh <- as.numeric(argv[10])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
181 lfcThresh <- as.numeric(argv[11])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
182 workMode <- as.character(argv[12])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
183 htmlPath <- as.character(argv[13])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
184 folderPath <- as.character(argv[14])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
185 if (workMode=="classic") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
186 pairData <- character()
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
187 pairData[2] <- as.character(argv[15])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
188 pairData[1] <- as.character(argv[16])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
189 } else if (workMode=="glm") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
190 contrastData <- as.character(argv[15])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
191 roastOpt <- as.character(argv[16])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
192 hairpinReq <- as.numeric(argv[17])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
193 selectOpt <- as.character(argv[18])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
194 selectVals <- as.character(argv[19])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
195 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
196
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
197 # Read in inputs
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
198
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
199 samples <- read.table(samplePath, header=TRUE, sep="\t")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
200 anno <- read.table(annoPath, header=TRUE, sep="\t")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
201 if (inputType=="counts") {
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
202 counts <- read.table(countPath, header=TRUE, sep="\t")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
203 }
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
204
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
205 ###################### Check inputs for correctness ############################
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
206 samples$ID <- make.names(samples$ID)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
207
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
208 if (!any(grepl("group", names(samples)))) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
209 stop("'group' column not specified in sample annotation file")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
210 } # Check if grouping variable has been specified
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
211
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
212 if (any(table(samples$ID)>1)){
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
213 tab <- table(samples$ID)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
214 offenders <- paste(names(tab[tab>1]), collapse=", ")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
215 offenders <- unmake.names(offenders)
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
216 stop("'ID' column of sample annotation must have unique values, values ",
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
217 offenders, " are repeated")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
218 } # Check that IDs in sample annotation are unique
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
219
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
220 if (inputType=="fastq") {
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
221
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
222 if (any(table(anno$ID)>1)){
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
223 tab <- table(anno$ID)
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
224 offenders <- paste(names(tab[tab>1]), collapse=", ")
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
225 stop("'ID' column of hairpin annotation must have unique values, values ",
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
226 offenders, " are repeated")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
227 } # Check that IDs in hairpin annotation are unique
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
228
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
229 } else if (inputType=="counts") {
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
230 if (any(is.na(match(samples$ID, colnames(counts))))) {
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
231 stop("not all samples have groups specified")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
232 } # Check that a group has be specifed for each sample
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
233
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
234 if (any(table(counts$ID)>1)){
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
235 tab <- table(counts$ID)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
236 offenders <- paste(names(tab[tab>1]), collapse=", ")
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
237 stop("'ID' column of count table must have unique values, values ",
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
238 offenders, " are repeated")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
239 } # Check that IDs in count table are unique
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
240 }
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
241 if (workMode=="glm") {
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
242 if (roastOpt == "yes") {
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
243 if (is.na(match("Gene", colnames(anno)))) {
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
244 tempStr <- paste("Gene-wise tests selected but'Gene' column not",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
245 "specified in hairpin annotation file")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
246 stop(tempStr)
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
247 }
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
248 }
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
249 }
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
250
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
251 ################################################################################
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
252
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
253 # Process arguments
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
254 if (workMode=="glm") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
255 if (roastOpt=="yes") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
256 wantRoast <- TRUE
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
257 } else {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
258 wantRoast <- FALSE
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
259 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
260 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
261
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
262 # Split up contrasts seperated by comma into a vector and replace spaces with
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
263 # periods
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
264 if (exists("contrastData")) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
265 contrastData <- unlist(strsplit(contrastData, split=","))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
266 contrastData <- sanitiseEquation(contrastData)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
267 contrastData <- gsub(" ", ".", contrastData, fixed=TRUE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
268 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
269
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
270 # Replace spaces with periods in pair data
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
271 if (exists("pairData")) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
272 pairData <- make.names(pairData)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
273 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
274
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
275 # Generate output folder and paths
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
276 dir.create(folderPath)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
277
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
278 # Generate links for outputs
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
279 imgOut("barHairpin")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
280 imgOut("barIndex")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
281 imgOut("mds")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
282 imgOut("bcv")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
283 if (workMode == "classic") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
284 smearPng <- makeOut(paste0("smear(", pairData[2], "-", pairData[1],").png"))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
285 smearPdf <- makeOut(paste0("smear(", pairData[2], "-", pairData[1],").pdf"))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
286 topOut <- makeOut(paste0("toptag(", pairData[2], "-", pairData[1],").tsv"))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
287 } else if (workMode=="glm") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
288 smearPng <- character()
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
289 smearPdf <- character()
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
290 topOut <- character()
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
291 roastOut <- character()
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
292 barcodePng <- character()
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
293 barcodePdf <- character()
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
294 for (i in 1:length(contrastData)) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
295 smearPng[i] <- makeOut(paste0("smear(", contrastData[i], ").png"))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
296 smearPdf[i] <- makeOut(paste0("smear(", contrastData[i], ").pdf"))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
297 topOut[i] <- makeOut(paste0("toptag(", contrastData[i], ").tsv"))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
298 roastOut[i] <- makeOut(paste0("roast(", contrastData[i], ").tsv"))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
299 barcodePng[i] <- makeOut(paste0("barcode(", contrastData[i], ").png"))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
300 barcodePdf[i] <- makeOut(paste0("barcode(", contrastData[i], ").pdf"))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
301 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
302 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
303 # Initialise data for html links and images, table with the link label and
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
304 # link address
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
305 linkData <- data.frame(Label=character(), Link=character(),
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
306 stringsAsFactors=FALSE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
307 imageData <- data.frame(Label=character(), Link=character(),
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
308 stringsAsFactors=FALSE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
309 ################################################################################
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
310 ### Data Processing
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
311 ################################################################################
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
312
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
313 # Transform gene selection from string into index values for mroast
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
314 if (workMode=="glm") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
315 if (selectOpt=="rank") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
316 selectVals <- gsub(" ", "", selectVals, fixed=TRUE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
317 selectVals <- unlist(strsplit(selectVals, ","))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
318
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
319 for (i in 1:length(selectVals)) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
320 if (grepl(":", selectVals[i], fixed=TRUE)) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
321 temp <- unlist(strsplit(selectVals[i], ":"))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
322 selectVals <- selectVals[-i]
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
323 a <- as.numeric(temp[1])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
324 b <- as.numeric(temp[2])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
325 selectVals <- c(selectVals, a:b)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
326 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
327 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
328 selectVals <- as.numeric(unique(selectVals))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
329 } else {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
330 selectVals <- gsub(" ", "", selectVals, fixed=TRUE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
331 selectVals <- unlist(strsplit(selectVals, " "))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
332 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
333 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
334
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
335 if (inputType=="fastq") {
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
336 # Use EdgeR hairpin process and capture outputs
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
337 hpReadout <- capture.output(
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
338 data <- processHairpinReads(fastqPath, samplePath, annoPath,
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
339 hairpinStart=hpStart, hairpinEnd=hpEnd,
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
340 verbose=TRUE)
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
341 )
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
342
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
343 # Remove function output entries that show processing data or is empty
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
344 hpReadout <- hpReadout[hpReadout!=""]
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
345 hpReadout <- hpReadout[!grepl("Processing", hpReadout)]
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
346 hpReadout <- hpReadout[!grepl("in file", hpReadout)]
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
347 hpReadout <- gsub(" -- ", "", hpReadout, fixed=TRUE)
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
348
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
349 # Make the names of groups syntactically valid (replace spaces with periods)
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
350 data$samples$group <- make.names(data$samples$group)
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
351 } else if (inputType=="counts") {
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
352 # Process counts information, set ID column to be row names
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
353 rownames(counts) <- counts$ID
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
354 counts <- counts[ , !(colnames(counts)=="ID")]
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
355 countsRows <- nrow(counts)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
356
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
357 # Process group information
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
358 factors <- samples$group[match(samples$ID, colnames(counts))]
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
359 annoRows <- nrow(anno)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
360 anno <- anno[match(rownames(counts), anno$ID), ]
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
361 annoMatched <- sum(!is.na(anno$ID))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
362
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
363 if (any(is.na(anno$ID))) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
364 warningStr <- paste("count table contained more hairpins than",
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
365 "specified in hairpin annotation file")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
366 warning(warningStr)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
367 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
368
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
369 # Filter out rows with zero counts
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
370 sel <- rowSums(counts)!=0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
371 counts <- counts[sel, ]
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
372 anno <- anno[sel, ]
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
373
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
374 # Create DGEList
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
375 data <- DGEList(counts=counts, lib.size=colSums(counts),
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
376 norm.factors=rep(1,ncol(counts)), genes=anno, group=factors)
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
377
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
378 # Make the names of groups syntactically valid (replace spaces with periods)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
379 data$samples$group <- make.names(data$samples$group)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
380 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
381
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
382 # Filter hairpins with low counts
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
383 preFilterCount <- nrow(data)
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
384 sel <- rowSums(cpm(data$counts) > cpmReq) >= sampleReq
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
385 data <- data[sel, ]
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
386 postFilterCount <- nrow(data)
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
387 filteredCount <- preFilterCount-postFilterCount
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
388
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
389 # Estimate dispersions
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
390 data <- estimateDisp(data)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
391 commonBCV <- sqrt(data$common.dispersion)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
392
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
393 ################################################################################
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
394 ### Output Processing
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
395 ################################################################################
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
396
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
397 # Plot number of hairpins that could be matched per sample
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
398 png(barIndexPng, width=600, height=600)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
399 barplot(height<-colSums(data$counts), las=2, main="Counts per index",
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
400 cex.names=1.0, cex.axis=0.8, ylim=c(0, max(height)*1.2))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
401 imageData[1, ] <- c("Counts per Index", "barIndex.png")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
402 invisible(dev.off())
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
403
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
404 pdf(barIndexPdf)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
405 barplot(height<-colSums(data$counts), las=2, main="Counts per index",
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
406 cex.names=1.0, cex.axis=0.8, ylim=c(0, max(height)*1.2))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
407 linkData[1, ] <- c("Counts per Index Barplot (.pdf)", "barIndex.pdf")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
408 invisible(dev.off())
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
409
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
410 # Plot per hairpin totals across all samples
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
411 png(barHairpinPng, width=600, height=600)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
412 if (nrow(data$counts)<50) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
413 barplot(height<-rowSums(data$counts), las=2, main="Counts per hairpin",
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
414 cex.names=0.8, cex.axis=0.8, ylim=c(0, max(height)*1.2))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
415 } else {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
416 barplot(height<-rowSums(data$counts), las=2, main="Counts per hairpin",
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
417 cex.names=0.8, cex.axis=0.8, ylim=c(0, max(height)*1.2),
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
418 names.arg=FALSE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
419 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
420 imageData <- rbind(imageData, c("Counts per Hairpin", "barHairpin.png"))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
421 invisible(dev.off())
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
422
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
423 pdf(barHairpinPdf)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
424 if (nrow(data$counts)<50) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
425 barplot(height<-rowSums(data$counts), las=2, main="Counts per hairpin",
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
426 cex.names=0.8, cex.axis=0.8, ylim=c(0, max(height)*1.2))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
427 } else {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
428 barplot(height<-rowSums(data$counts), las=2, main="Counts per hairpin",
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
429 cex.names=0.8, cex.axis=0.8, ylim=c(0, max(height)*1.2),
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
430 names.arg=FALSE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
431 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
432 newEntry <- c("Counts per Hairpin Barplot (.pdf)", "barHairpin.pdf")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
433 linkData <- rbind(linkData, newEntry)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
434 invisible(dev.off())
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
435
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
436 # Make an MDS plot to visualise relationships between replicate samples
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
437 png(mdsPng, width=600, height=600)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
438 plotMDS(data, labels=data$samples$group, col=as.numeric(data$samples$group),
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
439 main="MDS Plot")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
440 imageData <- rbind(imageData, c("MDS Plot", "mds.png"))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
441 invisible(dev.off())
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
442
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
443 pdf(mdsPdf)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
444 plotMDS(data, labels=data$samples$group, col=as.numeric(data$samples$group),
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
445 main="MDS Plot")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
446 newEntry <- c("MDS Plot (.pdf)", "mds.pdf")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
447 linkData <- rbind(linkData, newEntry)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
448 invisible(dev.off())
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
449
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
450 if (workMode=="classic") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
451 # Assess differential representation using classic exact testing methodology
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
452 # in edgeR
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
453 testData <- exactTest(data, pair=pairData)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
454
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
455 top <- topTags(testData, n=Inf)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
456 topIDs <- top$table[(top$table$FDR < fdrThresh) &
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
457 (abs(top$table$logFC) > lfcThresh), 1]
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
458 write.table(top, file=topOut, row.names=FALSE, sep="\t")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
459 linkName <- paste0("Top Tags Table(", pairData[2], "-", pairData[1],
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
460 ") (.tsv)")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
461 linkAddr <- paste0("toptag(", pairData[2], "-", pairData[1], ").tsv")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
462 linkData <- rbind(linkData, c(linkName, linkAddr))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
463
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
464 # Select hairpins with FDR < 0.05 to highlight on plot
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
465 png(smearPng, width=600, height=600)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
466 plotTitle <- gsub(".", " ",
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
467 paste0("Smear Plot: ", pairData[2], "-", pairData[1]),
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
468 fixed = TRUE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
469 plotSmear(testData, de.tags=topIDs,
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
470 pch=20, cex=1.0, main=plotTitle)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
471 abline(h = c(-1, 0, 1), col = c("dodgerblue", "yellow", "dodgerblue"), lty=2)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
472 imgName <- paste0("Smear Plot(", pairData[2], "-", pairData[1], ")")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
473 imgAddr <- paste0("smear(", pairData[2], "-", pairData[1],").png")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
474 imageData <- rbind(imageData, c(imgName, imgAddr))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
475 invisible(dev.off())
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
476
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
477 pdf(smearPdf)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
478 plotTitle <- gsub(".", " ",
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
479 paste0("Smear Plot: ", pairData[2], "-", pairData[1]),
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
480 fixed = TRUE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
481 plotSmear(testData, de.tags=topIDs,
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
482 pch=20, cex=1.0, main=plotTitle)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
483 abline(h = c(-1, 0, 1), col = c("dodgerblue", "yellow", "dodgerblue"), lty=2)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
484 imgName <- paste0("Smear Plot(", pairData[2], "-", pairData[1], ") (.pdf)")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
485 imgAddr <- paste0("smear(", pairData[2], "-", pairData[1], ").pdf")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
486 linkData <- rbind(linkData, c(imgName, imgAddr))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
487 invisible(dev.off())
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
488 } else if (workMode=="glm") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
489 # Generating design information
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
490 factors <- factor(data$sample$group)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
491 design <- model.matrix(~0+factors)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
492
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
493 colnames(design) <- gsub("factors", "", colnames(design), fixed=TRUE)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
494
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
495 # Split up contrasts seperated by comma into a vector
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
496 contrastData <- unlist(strsplit(contrastData, split=","))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
497 for (i in 1:length(contrastData)) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
498 # Generate contrasts information
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
499 contrasts <- makeContrasts(contrasts=contrastData[i], levels=design)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
500
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
501 # Fit negative bionomial GLM
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
502 fit = glmFit(data, design)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
503 # Carry out Likelihood ratio test
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
504 testData = glmLRT(fit, contrast=contrasts)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
505
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
506 # Select hairpins with FDR < 0.05 to highlight on plot
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
507 top <- topTags(testData, n=Inf)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
508 topIDs <- top$table[(top$table$FDR < fdrThresh) &
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
509 (abs(top$table$logFC) > lfcThresh), 1]
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
510 write.table(top, file=topOut[i], row.names=FALSE, sep="\t")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
511
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
512 linkName <- paste0("Top Tags Table(", contrastData[i], ") (.tsv)")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
513 linkAddr <- paste0("toptag(", contrastData[i], ").tsv")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
514 linkData <- rbind(linkData, c(linkName, linkAddr))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
515
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
516 # Make a plot of logFC versus logCPM
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
517 png(smearPng[i], height=600, width=600)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
518 plotTitle <- paste("Smear Plot:", gsub(".", " ", contrastData[i],
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
519 fixed=TRUE))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
520 plotSmear(testData, de.tags=topIDs, pch=20, cex=0.8, main=plotTitle)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
521 abline(h=c(-1, 0, 1), col=c("dodgerblue", "yellow", "dodgerblue"), lty=2)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
522
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
523 imgName <- paste0("Smear Plot(", contrastData[i], ")")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
524 imgAddr <- paste0("smear(", contrastData[i], ").png")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
525 imageData <- rbind(imageData, c(imgName, imgAddr))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
526 invisible(dev.off())
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
527
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
528 pdf(smearPdf[i])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
529 plotTitle <- paste("Smear Plot:", gsub(".", " ", contrastData[i],
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
530 fixed=TRUE))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
531 plotSmear(testData, de.tags=topIDs, pch=20, cex=0.8, main=plotTitle)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
532 abline(h=c(-1, 0, 1), col=c("dodgerblue", "yellow", "dodgerblue"), lty=2)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
533
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
534 linkName <- paste0("Smear Plot(", contrastData[i], ") (.pdf)")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
535 linkAddr <- paste0("smear(", contrastData[i], ").pdf")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
536 linkData <- rbind(linkData, c(linkName, linkAddr))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
537 invisible(dev.off())
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
538
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
539 genes <- as.character(data$genes$Gene)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
540 unq <- unique(genes)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
541 unq <- unq[!is.na(unq)]
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
542 geneList <- list()
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
543 for (gene in unq) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
544 if (length(which(genes==gene)) >= hairpinReq) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
545 geneList[[gene]] <- which(genes==gene)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
546 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
547 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
548
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
549 if (wantRoast) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
550 # Input preparaton for roast
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
551 nrot = 9999
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
552 set.seed(602214129)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
553 roastData <- mroast(data, index=geneList, design=design,
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
554 contrast=contrasts, nrot=nrot)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
555 roastData <- cbind(GeneID=rownames(roastData), roastData)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
556 write.table(roastData, file=roastOut[i], row.names=FALSE, sep="\t")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
557 linkName <- paste0("Gene Level Analysis Table(", contrastData[i],
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
558 ") (.tsv)")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
559 linkAddr <- paste0("roast(", contrastData[i], ").tsv")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
560 linkData <- rbind(linkData, c(linkName, linkAddr))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
561 if (selectOpt=="rank") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
562 selectedGenes <- rownames(roastData)[selectVals]
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
563 } else {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
564 selectedGenes <- selectVals
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
565 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
566
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
567 if (packageVersion("limma")<"3.19.19") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
568 png(barcodePng[i], width=600, height=length(selectedGenes)*150)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
569 } else {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
570 png(barcodePng[i], width=600, height=length(selectedGenes)*300)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
571 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
572 par(mfrow=c(length(selectedGenes), 1))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
573 for (gene in selectedGenes) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
574 barcodeplot(testData$table$logFC, index=geneList[[gene]],
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
575 main=paste("Barcode Plot for", gene, "(logFCs)",
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
576 gsub(".", " ", contrastData[i])),
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
577 labels=c("Positive logFC", "Negative logFC"))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
578 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
579 imgName <- paste0("Barcode Plot(", contrastData[i], ")")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
580 imgAddr <- paste0("barcode(", contrastData[i], ").png")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
581 imageData <- rbind(imageData, c(imgName, imgAddr))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
582 dev.off()
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
583 if (packageVersion("limma")<"3.19.19") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
584 pdf(barcodePdf[i], width=8, height=2)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
585 } else {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
586 pdf(barcodePdf[i], width=8, height=4)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
587 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
588 for (gene in selectedGenes) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
589 barcodeplot(testData$table$logFC, index=geneList[[gene]],
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
590 main=paste("Barcode Plot for", gene, "(logFCs)",
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
591 gsub(".", " ", contrastData[i])),
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
592 labels=c("Positive logFC", "Negative logFC"))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
593 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
594 linkName <- paste0("Barcode Plot(", contrastData[i], ") (.pdf)")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
595 linkAddr <- paste0("barcode(", contrastData[i], ").pdf")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
596 linkData <- rbind(linkData, c(linkName, linkAddr))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
597 dev.off()
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
598 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
599 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
600 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
601
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
602 # Record ending time and calculate total run time
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
603 timeEnd <- as.character(Sys.time())
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
604 timeTaken <- capture.output(round(difftime(timeEnd,timeStart), digits=3))
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
605 timeTaken <- gsub("Time difference of ", "", timeTaken, fixed=TRUE)
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
606 ################################################################################
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
607 ### HTML Generation
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
608 ################################################################################
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
609 # Clear file
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
610 cat("", file=htmlPath)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
611
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
612 cata("<html>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
613 HtmlHead("EdgeR Output")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
614
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
615 cata("<body>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
616 cata("<h3>EdgeR Analysis Output:</h3>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
617 cata("<h4>Input Summary:</h4>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
618 if (inputType=="fastq") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
619 cata("<ul>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
620 ListItem(hpReadout[1])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
621 ListItem(hpReadout[2])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
622 cata("</ul>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
623 cata(hpReadout[3], "<br/>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
624 cata("<ul>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
625 ListItem(hpReadout[4])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
626 ListItem(hpReadout[7])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
627 cata("</ul>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
628 cata(hpReadout[8:11], sep="<br/>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
629 cata("<br />\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
630 cata("<b>Please check that read percentages are consistent with ")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
631 cata("expectations.</b><br >\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
632 } else if (inputType=="counts") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
633 cata("<ul>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
634 ListItem("Number of Samples: ", ncol(data$counts))
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
635 ListItem("Number of Hairpins: ", countsRows)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
636 ListItem("Number of annotations provided: ", annoRows)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
637 ListItem("Number of annotations matched to hairpin: ", annoMatched)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
638 cata("</ul>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
639 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
640
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
641 cata("The estimated common biological coefficient of variation (BCV) is: ",
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
642 commonBCV, "<br />\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
643
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
644 cata("<h4>Output:</h4>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
645 cata("All images displayed have PDF copy at the bottom of the page, these can ")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
646 cata("exported in a pdf viewer to high resolution image format. <br/>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
647 for (i in 1:nrow(imageData)) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
648 if (grepl("barcode", imageData$Link[i])) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
649 if (packageVersion("limma")<"3.19.19") {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
650 HtmlImage(imageData$Link[i], imageData$Label[i],
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
651 height=length(selectedGenes)*150)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
652 } else {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
653 HtmlImage(imageData$Link[i], imageData$Label[i],
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
654 height=length(selectedGenes)*300)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
655 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
656 } else {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
657 HtmlImage(imageData$Link[i], imageData$Label[i])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
658 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
659 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
660 cata("<br/>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
661
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
662 cata("<h4>Plots:</h4>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
663 for (i in 1:nrow(linkData)) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
664 if (!grepl(".tsv", linkData$Link[i])) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
665 HtmlLink(linkData$Link[i], linkData$Label[i])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
666 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
667 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
668
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
669 cata("<h4>Tables:</h4>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
670 for (i in 1:nrow(linkData)) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
671 if (grepl(".tsv", linkData$Link[i])) {
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
672 HtmlLink(linkData$Link[i], linkData$Label[i])
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
673 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
674 }
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
675
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
676 cata("<p>alt-click any of the links to download the file, or click the name ")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
677 cata("of this task in the galaxy history panel and click on the floppy ")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
678 cata("disk icon to download all files in a zip archive.</p>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
679 cata("<p>.tsv files are tab seperated files that can be viewed using Excel ")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
680 cata("or other spreadsheet programs</p>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
681 cata("<table border=\"0\">\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
682
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
683 cata("<h4>Additional Information:</h4>\n")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
684
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
685 if (inputType == "fastq") {
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
686 ListItem("Data was gathered from fastq raw read file(s).")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
687 } else if (inputType == "counts") {
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
688 ListItem("Data was gathered from a table of counts.")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
689 }
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
690
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
691 if (cpmReq!=0 && sampleReq!=0) {
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
692 tempStr <- paste("Hairpins that do not have more than", cpmReq,
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
693 "CPM in at least", sampleReq, "samples are considered",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
694 "insignificant and filtered out.")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
695 ListItem(tempStr)
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
696 filterProp <- round(filteredCount/preFilterCount*100, digits=2)
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
697 tempStr <- paste0(filteredCount, " of ", preFilterCount," (", filterProp,
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
698 "%) hairpins were filtered out for low count-per-million.")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
699 ListItem(tempStr)
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
700 }
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
701
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
702 if (workMode == "classic") {
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
703 ListItem("An exact test was performed on each hairpin.")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
704 } else if (workMode == "glm") {
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
705 ListItem("A generalised linear model was fitted to each hairpin.")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
706 }
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
707
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
708
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
709
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
710 cit <- character()
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
711 link <-character()
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
712 link[1] <- paste0("<a href=\"",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
713 "http://www.bioconductor.org/packages/release/bioc/",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
714 "vignettes/limma/inst/doc/usersguide.pdf",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
715 "\">", "limma User's Guide", "</a>.")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
716 link[2] <- paste0("<a href=\"",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
717 "http://www.bioconductor.org/packages/release/bioc/",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
718 "vignettes/edgeR/inst/doc/edgeRUsersGuide.pdf",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
719 "\">", "edgeR User's Guide", "</a>")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
720
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
721 cit[1] <- paste("Robinson MD, McCarthy DJ and Smyth GK (2010).",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
722 "edgeR: a Bioconductor package for differential",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
723 "expression analysis of digital gene expression",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
724 "data. Bioinformatics 26, 139-140")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
725 cit[2] <- paste("Robinson MD and Smyth GK (2007). Moderated statistical tests",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
726 "for assessing differences in tag abundance. Bioinformatics",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
727 "23, 2881-2887")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
728 cit[3] <- paste("Robinson MD and Smyth GK (2008). Small-sample estimation of",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
729 "negative binomial dispersion, with applications to SAGE data.",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
730 "Biostatistics, 9, 321-332")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
731
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
732 cit[4] <- paste("McCarthy DJ, Chen Y and Smyth GK (2012). Differential",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
733 "expression analysis of multifactor RNA-Seq experiments with",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
734 "respect to biological variation. Nucleic Acids Research 40,",
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
735 "4288-4297")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
736
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
737 cata("<h4>Citations</h4>")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
738 cata("<ol>\n")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
739 ListItem(cit[1])
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
740 ListItem(cit[2])
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
741 ListItem(cit[3])
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
742 ListItem(cit[4])
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
743 cata("</ol>\n")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
744
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
745 cata("<table border=\"0\">\n")
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
746 cata("<tr>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
747 TableItem("Task started at:"); TableItem(timeStart)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
748 cata("</tr>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
749 cata("<tr>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
750 TableItem("Task ended at:"); TableItem(timeEnd)
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
751 cata("</tr>\n")
1
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
752 cata("<tr>\n")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
753 TableItem("Task run time:"); TableItem(timeTaken)
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
754 cata("<tr>\n")
cad1cc829e2e - test commit
shian_su <registertonysu@gmail.com>
parents: 0
diff changeset
755 cata("</table>\n")
0
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
756
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
757 cata("</body>\n")
8848246b5612 First Commit
shian_su <registertonysu@gmail.com>
parents:
diff changeset
758 cata("</html>")