[BioC] flowviz

Mike wjiang2 at fhcrc.org
Tue Sep 2 19:18:14 CEST 2014


To construct 'rectangleGate' programmatically, you can use '.gate' argument:

definition = 
function(channel1="FS.Log",channel2="FL.4.Log",x_start=500,x_end=3500,y_start=500,y_end=3000,...)
{
   coords <- list(c(x_start,x_end), c(y_start,y_end))
   names(coords) <- c(channel1, channel2)
   Noise <- rectangleGate(filterId="Noise",  .gate = coords)

}

Mike

On 09/02/2014 07:00 AM, Joachim Schumann wrote:
> Hi Mike,
>
> thanks, that woks great. Now, I'm having a little problem. After 
> reading a fcs file I want to use the method
> rectangleGate().
>
> To define the channels I use e.g.
>
> Noise <- rectangleGate(filterId="Noise", list("FS.Log"=c(500,3500), 
> "FL.4.Log"=c(500,3000)))
>
> But my own method has the parameters channel1 and channel2, e.g.
> definition = 
> function(channel1="FS.Log",channel2="FL.4.Log",x_start=500,x_end=3500,y_start=500,y_end=3000,...)
>
> Writing the following:
>
> Noise <- rectangleGate(filterId="Noise", 
> list(channel1=c(x_start,x_end), channel2=c(y_start,y_end)))
>
> does not work.
>
> How can I use both parameters (channel1,channel2) within the 
> rectangleGate method so that the user can define which channels he 
> wants to use?
>
> Best,
> Joachim
>
> Am 12.08.2014 20:16, schrieb Mike:
>> Joachim,
>>
>> Sorry I misunderstood your problem. It is probably not easy to do so 
>> unless you are willing to hack into hexbin::grid.hexagons and 
>> flowViz::panel.xyplot.flowframe.
>>
>> If it is just for small data set, you can simply use bin the data and 
>> do ggplot on the data.frame ,which gives you more flexibility in 
>> coloring.
>> Here is one example:
>>
>> library(ggplot2)
>> mat<-exprs(fs[[1]])
>> x<- mat[,"FSC-H"]
>> y<- mat[,"SSC-H"]
>> bin <- hexbin(x,y, xbin = 128)
>> df <- data.frame(hcell2xy(bin), count = bin at count)
>> ggplot(df, aes(x = x, y = y)) +  geom_point(aes(color = sqrt(count))) 
>> + scale_color_gradient(low = "white", high = "black" , na.value = 
>> "red", limit = c(1, 2)) + theme_bw()
>>
>>
>> Yon change use the 'limit' and 'na.value' to thresholding the colors.
>>
>> Mike
>>
>>
>>
>> Mike
>> On 08/12/2014 05:42 AM, Joachim Schumann wrote:
>>> Hi Mike,
>>>
>>> I did not get the point how to write a color ramp function with a 
>>> treshold.
>>>
>>> Right now I'm creating the xyplots like that:
>>>
>>> ff<-read.FCS("test.fcs",alter.names=TRUE,transformation=FALSE,min.limit=NULL)
>>> colramp <- colorRampPalette(c("white","black"))(236)
>>> col=colorRampPalette(colramp)
>>> xyplot(FS.Log ~ FL.4.Log ,data=ff, smooth=FALSE, xbin=128, 
>>> colramp=col ,par.settings = list(panel.background=list(col = 
>>> "white")), axis = axis.default, scales=(list(x=list(draw=FALSE), 
>>> y=list(draw=FALSE))), xlab="", ylab="")
>>>
>>> I can get the maximal value by:
>>>
>>> mat<-exprs(ff)
>>> x<-mat[,"FS.Log"]
>>> y<-mat[,"FL.4.Log"]
>>> bin<-hexbin(x,y,xbins=128)
>>> c<-bin at count
>>> m<-max(c)
>>>
>>> The counts should be the values plotted by the xyplot function, right?
>>>
>>> How can I define the color palette with 236 linear gradiations from 
>>> white to black starting by 0, ending by e.g. m-100. All the other 
>>> values (m-100 to m) shall be black.
>>>
>>> Thank.
>>>
>>> Joachim
>>>
>>> Am 24.03.2014 18:34, schrieb Mike:
>>>>
>>>> If you use |hexbin| version of |xyplot|, then the value is simply 
>>>> the cell counts falling into each hexagon.
>>>> It is not difficult to write your own customized colour ramp 
>>>> function to generate color schemes that you described based on your 
>>>> threshold.
>>>>
>>>> There are a little hacking you need to do in order to get the count 
>>>> value of each hexagon though, firstly you need to call |hexbin| on 
>>>> each |flowFrame|,
>>>>
>>>> |bin <- hexbin(x,y,xbins=xbins)
>>>> |
>>>>
>>>> |x, y| is the intensity values from the two channels you defined in 
>>>> formula (e.g. |SSC-H|~|FSC-H|), which you can get by
>>>>
>>>> |mat <- exprs(fs[[1]])
>>>> x <- mat[, channel_A)
>>>> y <- mat[, channel_B)
>>>> |
>>>>
>>>> then you get the the counts vector by |bin at count|.
>>>>
>>>> Mike
>>>>
>>>> On 03/22/2014 03:44 AM, Joachim Schumann wrote:
>>>>
>>>>> Hi Mike,
>>>>>
>>>>> thanks for your answer. I defined a colramp from white to black 
>>>>> now. Is there any way I can have a look at the values that are 
>>>>> calculated within the xyplot? The reason: I want to define a 
>>>>> threshold. E.g.: The highest value within the xyplot is 1000, the 
>>>>> lowest is 0. I want all values ranging from 900-1000 beeing black 
>>>>> and all values from 900-0 should have those 255 gradiations.
>>>>>
>>>>> Best,
>>>>> Joachim
>>>>>
>>>>> Am 20.03.2014 19:04, schrieb Mike:
>>>>>> 'colramp' argument is what you are looking for, here is the 
>>>>>> example code.
>>>>>>
>>>>>> library(flowViz)
>>>>>> data(GvHD)
>>>>>> fs <- GvHD[1:2]
>>>>>>
>>>>>> #generate all colors you need
>>>>>> myColors <- gray.colors(255)
>>>>>> #reverse it as you want dark for high and white for low
>>>>>> myColors <- rev(myColors)
>>>>>> #wrap it into a ramp function
>>>>>> myColRamp <- colorRampPalette(myColors)
>>>>>>
>>>>>> # pass the ramp function to xyplot
>>>>>> xyplot(`SSC-H`~`FSC-H`, fs, smooth = FALSE, xbin = 128, colramp = 
>>>>>> myColRamp)
>>>>>>
>>>>>>
>>>>>> Mike Jiang
>>>>>>
>>>>>> On 03/18/2014 09:34 AM, Joachim Schumann wrote:
>>>>>>> Hi Mike,
>>>>>>>>
>>>>>>>> thanks for your answer. I think xbin is the only thing I need. 
>>>>>>>> But I
>>>>>>>> have another question: I want to create a xyplot of my data. 
>>>>>>>> The range
>>>>>>>> of e.g. columns FS.Log and FL.4.Log is from 0-4095. I want to 
>>>>>>>> display
>>>>>>>> the xyplot (FL.4.Log ~ FS.Log) as a grayscale image with 256 linear
>>>>>>>> gradiations. Black should indicate 4095 (maxRange) and white should
>>>>>>>> indicate 0 (minRange). Now I need 256 linear gradiations from 
>>>>>>>> black to
>>>>>>>> white. The data resolution should be 128.
>>>>>>>> Can you tell me how to create such a grayscale image? I attached an
>>>>>>>> image showing the grayscale.
>>>>>>>>
>>>>>>>> Best,
>>>>>>>> Joachim
>>>>>>>>
>>>>>>>>
>>>>>>>> Am 14.03.2014 18:07, schrieb Mike:
>>>>>>>> > `nbin` is for displaying the marginal events (i.e. those gray 
>>>>>>>> segments
>>>>>>>> > piled up at the edges)
>>>>>>>> >
>>>>>>>> > `binSize` is for `timeline plotting`, i.e. when you do 
>>>>>>>> 'xyplot' on a
>>>>>>>> > `flowFrame` without 'formula` supplied , for example:
>>>>>>>> >
>>>>>>>> > xyplot(GvHD[["s5a05"]], binSize = 100)
>>>>>>>> >
>>>>>>>> > So again, 'xbin' is the argument to adjust the 'resolution'  for
>>>>>>>> > 'non-smoothed' xyplot . e.g.
>>>>>>>> >
>>>>>>>> > xyplot(`FSC-H` ~ `SSC-H`, GvHD[["s5a05"]], smooth = FALSE, 
>>>>>>>> xbin = 32)
>>>>>>>> > #lower resolution and faster rendering
>>>>>>>> >
>>>>>>>> > xyplot(`FSC-H` ~ `SSC-H`, GvHD[["s5a05"]], smooth = FALSE, 
>>>>>>>> xbin = 128)
>>>>>>>> > #higher resolution and slower rendering
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > Mike
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > On 03/13/2014 04:08 AM, Joachim Schumann wrote:
>>>>>>>> >> Yes, i meant the xyplot. Can I also change the number of events
>>>>>>>> >> within one bin? The vignette sometimes says nbin, sometimes 
>>>>>>>> binSize.
>>>>>>>> >>
>>>>>>>> >> Am 12.03.2014 18:11, schrieb Mike:
>>>>>>>> >>> Not sure what you mean by `histogram`. If you are talking about
>>>>>>>> >>> `xyplot`, there is `xbin` argument to adjust resolution 
>>>>>>>> (when you
>>>>>>>> >>> set `smooth = FALSE`).
>>>>>>>> >>>
>>>>>>>> >>> Mike
>>>>>>>> >>> On 03/12/2014 05:32 AM, Joachim Schumann wrote:
>>>>>>>> >>>> Hi Mr. Jiang,
>>>>>>>> >>>>
>>>>>>>> >>>> I'm using flowViz to create a histogram of my flow 
>>>>>>>> cytometric data.
>>>>>>>> >>>> Is there any way I can adjust the data resolution  (eg to 128)
>>>>>>>> >>>> within the histogram?
>>>>>>>> >>>>
>>>>>>>> >>>> Best regards,
>>>>>>>> >>>> Joachim
>>>>>>>> >>>>
>>>>>>>> >>>
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> M. Sc. Joachim Schumann
>>>>>>>> Department of Environmental Microbiology
>>>>>>>> AG Flow Cytometry
>>>>>>>> Helmholtz Centre for Environmental Research - UFZ
>>>>>>>> Permoserstraße 15, 04318 Leipzig
>>>>>>>>
>>>>>>>> E-Mail: joachim.schumann at ufz.de
>>>>>>>> http://www.ufz.de
>>>>>>>>
>>>>>>> --
>>>>>>> Joachim Schumann
>>>>>>> Department of Environmental Microbiology
>>>>>>> AG Flow Cytometry
>>>>>>> Helmholtz Centre for Environmental Research - UFZ
>>>>>>> Permoserstraße 15, 04318 Leipzig
>>>>>>> E-Mail: joachim.schumann at ufz.de <mailto:joachim.schumann at ufz.de>
>>>>>>> http://www.ufz.de
>>>>>>
>>>>>
>>>>>
>>>>> -- 
>>>>> M. Sc. Joachim Schumann
>>>>> Department of Environmental Microbiology
>>>>> AG Flow Cytometry
>>>>> Helmholtz Centre for Environmental Research - UFZ
>>>>> Permoserstraße 15, 04318 Leipzig
>>>>>
>>>>> E-Mail:joachim.schumann at ufz.de  
>>>>> http://www.ufz.de  
>>>
>>>
>>> -- 
>>> M. Sc. Joachim Schumann
>>> Department of Environmental Microbiology
>>> AG Flow Cytometry
>>> Helmholtz Centre for Environmental Research - UFZ
>>> Permoserstraße 15, 04318 Leipzig
>>>
>>> E-Mail:joachim.schumann at ufz.de  
>>> http://www.ufz.de  
>>
>
>
> -- 
> M. Sc. Joachim Schumann
> Department of Environmental Microbiology
> AG Flow Cytometry
> Helmholtz Centre for Environmental Research - UFZ
> Permoserstraße 15, 04318 Leipzig
> Tel.: 0049-341-235-1330
> E-Mail:joachim.schumann at ufz.de  
> http://www.ufz.de  


	[[alternative HTML version deleted]]



More information about the Bioconductor mailing list