make.grid {rflowcyt} | R Documentation

## Make a matrix of values allocated in a two dimensional grid

### Description

A two-dimensional plot can be subdivided via grid marks and lines. Each component of the resulting grid is called a cell. The function `make.grid` determines a matrix of values corresponding to the number of observations that lie within each cell of the grid. The function `make.density` estimates the values allocated to each grid cell by a 'status' binary variable. The values are estimated to be either a difference in counts between the two status categories, a proportion, a normalized proportion, and a z statistic for each cell such that an image or ContourScatterPlot plot can be implemented.

### Usage

    make.grid(x, y, x.grid = seq(0, 1025, by = 25),
               y.grid = seq(0, 1025, by = 25))

    make.density(x, y, status = NULL,
              x.grid = seq(0, 1025, by = 25),
              y.grid = seq(0, 1025, by = 25),
              type.CSP = c("count.diff", "p.hat", "p.hat.norm", "z.stat"))

### Arguments

`x` | a vector of data values for the x-axis
`y` | a vector of data values for the y-axis
`status` | a vector of 0, 1 values denoting two categories
`x.grid` | a vector of grid marks to allocate x
`y.grid` | a vector of grid marks to allocate y
`type.CSP` | character string denoting the type.CSP of value to be estimated using the 'status' for each cell grid

### Details

The following details the options for 'type.CSP':

"count.diff"
  The cell value is the count difference between the two 'status' categories
"p.hat"
  The grid cell value is the proportion of observations with 'status'==1 for that grid cell.
"p.hat.norm"
  The grid cell value is the following:

  (ie, (p.hat - 0.05)/sqrt( (0.05 * (1-0.05)) /n))

  p.hat is the proportion in 'status'==1

  where n is the number of cells in the grid with information. The default is to set the z statistic to zero for the cells with no information in either status. The value 0.5 is considered to be the case of no difference when the counts of both categories of 'status' are the same in the grid cell.

"z.stat"
  The cell value is a z statistic computed as the following:

  (ie, (p.hat - p.bar)/se(p.bar))

  p.hat is the proportion in 'status'==1

  p.bar is the average of p.hat over the whole grid

  se(p.bar)=sqrt((1-p.bar)(p.bar)/n), where n is the number of cells in the grid with information.

### Value

`z` | matrix of values corresponding to the counts in an x-y grid
`n.cells` | (only output for 'make.grid'); number of total observations in z
`type.CSP` | (only output for 'make.density'); the type.CSP of value in each cell.

### Note

In the base package, the function `image` could make a plot with the resulting matrix of values.

### Author(s)

Zoe Moodie, A.J. Rossini, J.Y. Wan

### See Also

`image`, `ContourScatterPlot`, `pairs.CSP`, `legend.CSP`, `heat.colors`

### Examples

      if (require(rfcdmin)){
       data.there<-is.element(c("st.1829", "unst.1829", "st.DRT", "unst.DRT"),objects())
       if ( ( sum(data.there) != length(data.there) )){
          ## obtaining the FCS objects from VRC data
          data(VRCmin)
      }

    var1<-st.DRT@data[,4]
    var2<-st.DRT@data[,5]
    var1.2<-unst.DRT@data[,4]
    var2.2<-unst.DRT@data[,5]

    col.nm<-colnames(st.DRT@data)

    ## The status where 1=stimulated
    ## 0 = unstimulated
    status<-c(rep(1, dim(st.DRT@data)[1]), rep(0, dim(unst.DRT@data)[1]))
    x <- c(var1, var1.2)
    y <-c(var2, var2.2)

    count.output1<-make.grid(var1, var2)
    count.output0<-make.grid(var1.2, var2.2)

    ## matrix of counts
    mat.counts1<-count.output1$z
    mat.counts0<-count.output0$z
    ##total observations
    total.stimulated<-count.output1$n.cells
    total.unstimulated<-count.output0$n.cells

    count.diff.output <-make.density(x, y, status=status, type.CSP="count.diff")
    ## matrix of cont differences between the status categories
    mat.count.diff <-count.diff.output$z

    p.hat.output <-make.density(x, y, status=status, type.CSP="p.hat")
    ## matrix of cont differences between the status categories
    mat.p.hat <-p.hat.output$z

    p.hat.norm.output <-make.density(x, y, status=status, type.CSP="p.hat.norm")
    ## matrix of cont differences between the status categories
    mat.p.hat.norm <-p.hat.norm.output$z

    z.stat.output <-make.density(x, y, status=status, type.CSP="z.stat")
    ## matrix of cont differences between the status categories
    mat.z.stat <-z.stat.output$z

    if (interactive()){
    par(mfrow=c(3,2))

    image(mat.counts1,yaxt="n", xaxt="n",
      main="make.grid: Counts for stimulated",
       xlab=col.nm[4],
       ylab=col.nm[5], col=heat.colors(20))

    image( mat.counts0,yaxt="n", xaxt="n",
      main="make.grid: Counts for unstimulated",
       xlab=col.nm[4],
       ylab=col.nm[5], col=heat.colors(20))

    image( mat.count.diff,yaxt="n", xaxt="n",
      main="make.density: Count Difference (Stimulated-Unstimulated)",
       xlab=col.nm[4],
       ylab=col.nm[5], col=heat.colors(20))

    image( mat.p.hat,yaxt="n", xaxt="n",
      main="make.density: Proportion of Stimulated",
       xlab=col.nm[4],
       ylab=col.nm[5], col=heat.colors(20))

    image( mat.p.hat.norm,main="make.density: Normalized proportion of Stimulated",
       xlab=col.nm[4],yaxt="n", xaxt="n",
       ylab=col.nm[5], col=heat.colors(20))

    image( mat.z.stat, main="make.density: z statistic",
       xlab=col.nm[4],yaxt="n", xaxt="n",
       ylab=col.nm[5], col=heat.colors(20))

    }
    }

[Package rflowcyt version 1.16.0 Index]