################################################### ### chunk number 1: Load Libraries ################################################### library(flowCore) library(flowQ) library(flowViz) library(flowStats) ################################################### ### chunk number 2: ReadFlowSet ################################################### flowData <- read.flowSet(path="." , phenoData="annotation.txt",transformation=FALSE) sampleNames(flowData) <- as.character(pData(flowData)[,"PatientID"]) ################################################### ### chunk number 3: ShowName/description fields ################################################### pData(parameters(flowData[[1]])) ################################################### ### chunk number 4: UpdateDescriptionFields ################################################### for(i in seq_len(length(flowData))){ pData(parameters(flowData[[i]]))[,"desc"] <- c("NA","NA", "CD8", "CD69", "CD4","CD3", "HLADr","NA") } flowData[[1]] ################################################### ### chunk number 5: Plot Forward/Side scatter ################################################### print(xyplot(`SSC-A` ~ `FSC-A`,data=flowData)) ################################################### ### chunk number 6: PlotUntransformedData ################################################### print(splom(flowData[[1]])) ################################################### ### chunk number 7: transformData ################################################### tData <- transform(flowData, transformList(colnames(flowData)[3:7], asinh)) ################################################### ### chunk number 8: PlotTransformedData ################################################### print(splom(tData[[1]])) ################################################### ### chunk number 9: QABoundaryEvents ################################################### dest <- "QAResults" qp1 <- qaProcess.marginevents(tData, channels=c("FSC-A","SSC-A"), outdir=dest, pdf=TRUE,sum.dimensions=c(5,3)) ################################################### ### chunk number 10: QAProcessCellNumber ################################################### qp2 <- qaProcess.cellnumber(tData, outdir=dest, cFactor=2, pdf=TRUE) ################################################### ### chunk number 11: QAProcessTimeLine ################################################### qp3 <- qaProcess.timeline(tData, channels="FSC-A", outdir=dest, cutoff=1, pdf=TRUE) ################################################### ### chunk number 12: WriteHTMLResports ################################################### url <- writeQAReport(tData, processes=list(qp1, qp2,qp3), outdir=dest, pdf=TRUE) ################################################### ### chunk number 13: start the work flow ################################################### colnames(flowData) <- c("FSC", "SSC","CD8","CD69", "CD4","CD3","HLADr", "Time") wf <- workFlow(flowData, name="biocExample") wf ################################################### ### chunk number 14: Transform the data ################################################### tf <- transformList(colnames(Data(wf[["base view"]]))[3:7], asinh, transformationId="asinh") add(wf, tf) wf ################################################### ### chunk number 15: Boundary filter FSC SSC channels ################################################### boundFilt <-boundaryFilter(filterId="boundFilt", x=c("FSC","SSC")) add(wf,boundFilt,parent="asinh") ################################################### ### chunk number 16: lymphGate ################################################### lg <- lymphGate(Data(wf[["boundFilt+"]]), channels=c("FSC", "SSC"), preselection="CD3", filterId="TCells", eval=FALSE, scale=2.5) add(wf, lg$n2gate, parent="boundFilt+") ################################################### ### chunk number 17: lymphGatePlot ################################################### xyplot(SSC ~ FSC| PatientID, wf[["TCells+"]], par.settings=list(gate=list(col="red", fill="red", alpha=0.3))) ################################################### ### chunk number 18: Plot flowFrame before & after Lymph gate ################################################### xyplot(SSC ~ FSC ,Data(wf[["TCells+"]])[[1]],smooth=F,pch=1.3,col="red") dev.new() xyplot(SSC ~ FSC ,Data(wf[["TCells-"]])[[1]],smooth=F,pch=1.3,col="red") ################################################### ### chunk number 19: Density plots for CD3, CD4, CD8 ################################################### print(densityplot(PatientID~., Data(wf[["TCells+"]]), channels=c("CD3","CD4","CD8") , groups=GroupID, scales=list(y=list(draw=F)), filter=lapply(c("CD3","CD4","CD8"), curv1Filter), layout=c(3,1))) ################################################### ### chunk number 20: Data after normalization ################################################### pars <- colnames(Data(wf[["base view"]]))[c(3,4,5,6)] norm <- normalization(normFun=function(x, parameters, ...) warpSet(x, parameters,...), parameters=pars, normalizationId="Warping") add(wf, norm, parent="TCells+") ################################################### ### chunk number 21: PlotNormalized CD3 ,CD4, CD8 ################################################### print(densityplot(PatientID~., Data(wf[["Warping"]]), channels=c("CD3","CD4","CD8"), groups=GroupID, scales=list(y=list(draw=F)), filter=lapply(c("CD3","CD4","CD8"), curv1Filter), layout=c(3,1))) ################################################### ### chunk number 22: QuadrantgateCD3+CD4+ (Helper/inducer cells T cells) ################################################### qgate <- quadrantGate(Data(wf[["Warping"]]), stains=c("CD3", "CD4"), plot=FALSE, filterId="CD3CD4") add(wf, qgate, parent="Warping") ################################################### ### chunk number 23: PlotQuadrantGateCD3+CD4+ ################################################### xyplot(CD3 ~ CD4 | PatientID, wf[["CD3+CD4+"]] ) ################################################### ### chunk number 24: QuadrantGateCD3+CD8+ (Cytotoxic/suppressor T cells) ################################################### qgate <- quadrantGate(Data(wf[["Warping"]]), stains=c("CD3", "CD8"), plot=FALSE, filterId="CD3CD8") add(wf, qgate, parent="Warping") ################################################### ### chunk number 25: PlotQuadrantGateCD3+CD4+ ################################################### xyplot(CD3 ~ CD8 | PatientID, wf[["CD3+CD8+"]]) ################################################### ### chunk number 26: HLADrActivatedCD3+CD4+ ################################################### HLADr1 <- rangeGate(Data(wf[["CD3+CD4+"]]), stain="HLADr", plot=FALSE, alpha=0.75, filterId="CD3+CD4+HLAct") add(wf, HLADr1, parent="CD3+CD4+") ################################################### ### chunk number 27: PlotHLADrActivatedCD3+CD4+ ################################################### densityplot(PatientID ~ HLADr, Data(wf[["CD3+CD4+"]]), refline=HLADr1@min) ################################################### ### chunk number 28: HLADrActivatedCD3+CD8+ ################################################### HLADr2 <- rangeGate(Data(wf[["CD3+CD8+"]]), stain="HLADr", plot=FALSE, alpha=0.75, filterId="CD3+CD8+HLAct") add(wf, HLADr2, parent="CD3+CD8+") ################################################### ### chunk number 29: PlotHLADrActivatedCD3+CD8+ ################################################### densityplot(PatientID ~ HLADr, Data(wf[["CD3+CD8+"]]), refline=HLADr2@min) ################################################### ### chunk number 30: Percent of HLADrActivatedCD3+CD4+ to original population ################################################### pr <-fsApply(Data(wf[["CD3+CD4+HLAct-"]]),nrow)*100 /fsApply(Data(wf[["boundFilt+"]]),nrow) res <- data.frame(pr, pData(Data(wf[["CD3+CD4+"]]))[c("GroupID","PatientID")]) barchart(reorder(PatientID,as.numeric(factor(GroupID))) ~ pr,data=res, groups=GroupID,stack=TRUE, auto.key = list(points = FALSE, rectangles = TRUE, space = "right"), main="HlADr Activated CD3+CD4+ T cells", xlab="Percentage of activated cells" ) ################################################### ### chunk number 31: Percentage of HLADRrActivatedCD3+CD8+ to orignal population ################################################### pr <- fsApply(Data(wf[["CD3+CD8+HLAct-"]]),nrow)*100 /fsApply(Data(wf[["boundFilt+"]]),nrow) res <- data.frame(pr,pData(Data(wf[["CD3+CD8+"]]))[c("GroupID","PatientID")]) barchart(reorder(PatientID,as.numeric(factor(GroupID))) ~ pr,data=res, groups=GroupID,stack=TRUE, auto.key = list(points = FALSE, rectangles = TRUE, space = "right"), main="Activated CD3+CD8+ T cells", xlab=" Percentage of activated cells " ) ################################################### ### chunk number 32: PlotWorkFlow ################################################### plot(wf)