Mercurial > repos > davidvanzessen > argalaxy_tools
comparison report_clonality/RScript.r @ 40:106275b54470 draft
Uploaded
| author | davidvanzessen |
|---|---|
| date | Tue, 30 May 2017 07:26:33 -0400 |
| parents | b6936fb52ab9 |
| children | a70dbcfa5d8a |
comparison
equal
deleted
inserted
replaced
| 39:bad6a9a53ae7 | 40:106275b54470 |
|---|---|
| 120 clonalityFrame$clonaltype = do.call(paste, c(clonalityFrame[unlist(strsplit(clonaltype, ","))], sep = ":")) | 120 clonalityFrame$clonaltype = do.call(paste, c(clonalityFrame[unlist(strsplit(clonaltype, ","))], sep = ":")) |
| 121 clonalityFrame$clonality_clonaltype = do.call(paste, c(clonalityFrame[unlist(strsplit(paste(clonaltype, ",Replicate", sep=""), ","))], sep = ":")) | 121 clonalityFrame$clonality_clonaltype = do.call(paste, c(clonalityFrame[unlist(strsplit(paste(clonaltype, ",Replicate", sep=""), ","))], sep = ":")) |
| 122 clonalityFrame = clonalityFrame[!duplicated(clonalityFrame$clonality_clonaltype), ] | 122 clonalityFrame = clonalityFrame[!duplicated(clonalityFrame$clonality_clonaltype), ] |
| 123 } | 123 } |
| 124 | 124 |
| 125 if(nrow(PRODF) == 0){ | |
| 126 stop("No sequences left after filtering") | |
| 127 } | |
| 128 | |
| 125 prod.unique.sample.count = data.frame(data.table(PRODF)[, list(Productive_unique=.N), by=c("Sample")]) | 129 prod.unique.sample.count = data.frame(data.table(PRODF)[, list(Productive_unique=.N), by=c("Sample")]) |
| 126 prod.unique.rep.count = data.frame(data.table(PRODF)[, list(Productive_unique=.N), by=c("Sample", "Replicate")]) | 130 prod.unique.rep.count = data.frame(data.table(PRODF)[, list(Productive_unique=.N), by=c("Sample", "Replicate")]) |
| 127 | 131 |
| 128 unprod.unique.sample.count = data.frame(data.table(UNPROD)[, list(Unproductive_unique=.N), by=c("Sample")]) | 132 unprod.unique.sample.count = data.frame(data.table(UNPROD)[, list(Unproductive_unique=.N), by=c("Sample")]) |
| 129 unprod.unique.rep.count = data.frame(data.table(UNPROD)[, list(Unproductive_unique=.N), by=c("Sample", "Replicate")]) | 133 unprod.unique.rep.count = data.frame(data.table(UNPROD)[, list(Unproductive_unique=.N), by=c("Sample", "Replicate")]) |
| 134 | |
| 130 | 135 |
| 131 PRODF$freq = 1 | 136 PRODF$freq = 1 |
| 132 | 137 |
| 133 if(any(grepl(pattern="_", x=PRODF$ID))){ #the frequency can be stored in the ID with the pattern ".*_freq_.*" | 138 if(any(grepl(pattern="_", x=PRODF$ID))){ #the frequency can be stored in the ID with the pattern ".*_freq_.*" |
| 134 PRODF$freq = gsub("^[0-9]+_", "", PRODF$ID) | 139 PRODF$freq = gsub("^[0-9]+_", "", PRODF$ID) |
| 174 | 179 |
| 175 print("Report Clonality - counting productive/unproductive/unique") | 180 print("Report Clonality - counting productive/unproductive/unique") |
| 176 | 181 |
| 177 #create the table on the overview page with the productive/unique counts per sample/replicate | 182 #create the table on the overview page with the productive/unique counts per sample/replicate |
| 178 #first for sample | 183 #first for sample |
| 184 | |
| 179 sample.count = merge(input.sample.count, prod.sample.count, by="Sample", all.x=T) | 185 sample.count = merge(input.sample.count, prod.sample.count, by="Sample", all.x=T) |
| 180 sample.count$perc_prod = round(sample.count$Productive / sample.count$All * 100) | 186 sample.count$perc_prod = round(sample.count$Productive / sample.count$All * 100) |
| 181 sample.count = merge(sample.count, prod.unique.sample.count, by="Sample", all.x=T) | 187 sample.count = merge(sample.count, prod.unique.sample.count, by="Sample", all.x=T) |
| 182 sample.count$perc_prod_un = round(sample.count$Productive_unique / sample.count$All * 100) | 188 sample.count$perc_prod_un = round(sample.count$Productive_unique / sample.count$All * 100) |
| 183 | 189 |
| 186 sample.count = merge(sample.count, unprod.unique.sample.count, by="Sample", all.x=T) | 192 sample.count = merge(sample.count, unprod.unique.sample.count, by="Sample", all.x=T) |
| 187 sample.count$perc_unprod_un = round(sample.count$Unproductive_unique / sample.count$All * 100) | 193 sample.count$perc_unprod_un = round(sample.count$Unproductive_unique / sample.count$All * 100) |
| 188 | 194 |
| 189 #then sample/replicate | 195 #then sample/replicate |
| 190 rep.count = merge(input.rep.count, prod.rep.count, by=c("Sample", "Replicate"), all.x=T) | 196 rep.count = merge(input.rep.count, prod.rep.count, by=c("Sample", "Replicate"), all.x=T) |
| 197 | |
| 198 print(rep.count) | |
| 199 | |
| 200 fltr = is.na(rep.count$Productive) | |
| 201 if(any(fltr)){ | |
| 202 rep.count[fltr,"Productive"] = 0 | |
| 203 } | |
| 204 | |
| 205 print(rep.count) | |
| 206 | |
| 191 rep.count$perc_prod = round(rep.count$Productive / rep.count$All * 100) | 207 rep.count$perc_prod = round(rep.count$Productive / rep.count$All * 100) |
| 192 rep.count = merge(rep.count, prod.unique.rep.count, by=c("Sample", "Replicate"), all.x=T) | 208 rep.count = merge(rep.count, prod.unique.rep.count, by=c("Sample", "Replicate"), all.x=T) |
| 193 rep.count$perc_prod_un = round(rep.count$Productive_unique / rep.count$All * 100) | 209 rep.count$perc_prod_un = round(rep.count$Productive_unique / rep.count$All * 100) |
| 194 | 210 |
| 195 rep.count = merge(rep.count, unprod.rep.count, by=c("Sample", "Replicate"), all.x=T) | 211 rep.count = merge(rep.count, unprod.rep.count, by=c("Sample", "Replicate"), all.x=T) |
