`scale_gate.Rd`

Scale a gate associated with a node of a `GatingHierarchy`

or
`GatingSet`

. This method is a wrapper for `scale_gate`

that enables
updating of the gate associated with a node of a `GatingHierarchy`

or `GatingSet`

.

`scale_gate`

calls `gs_pop_set_gate`

to modify the provided `GatingHierarchy`

or `GatingSet`

directly so there is no need to re-assign its output. The arguments will be essentially identical to the
`flowCore`

method, except for the specification of the target gate. Rather than being called on an
object of type `filter`

, here it is called on a `GatingHierarchy`

or `GatingSet`

object with an additional character argument for specifying the node whose gate should be transformed.
The rest of the details below are taken from the `flowCore`

documentation.

# S3 method for GatingHierarchy scale_gate(obj, y, scale = NULL, ...)

obj | A |
---|---|

y | A character specifying the node whose gate should be modified |

scale | Either a numeric scalar (for uniform scaling in all dimensions) or numeric vector specifying the factor by which each dimension of the gate should be expanded (absolute value > 1) or contracted (absolute value < 1). Negative values will result in a reflection in that dimension. |

... | not used |

This method allows uniform or non-uniform geometric scaling of filter types defined by simple geometric gates
(`quadGate`

, `rectangleGate`

, `ellipsoidGate`

, and
`polygonGate`

) Note that these methods are for manually altering
the geometric definition of a gate. To easily transform the definition of a gate with an accompanyging scale
transformation applied to its underlying data, see ?ggcyto::rescale_gate.

The `scale`

argument passed to `scale_gate`

should be either a scalar or a vector of the same length
as the number of dimensions of the gate. If it is scalar, all dimensions will be multiplicatively scaled uniformly
by the scalar factor provided. If it is a vector, each dimension will be scaled by its corresponding entry in the vector.

The scaling behavior of `scale_gate`

depends on the type of gate passed to it. For `rectangleGate`

and `quadGate`

objects, this amounts to simply scaling the values of the 1-dimensional boundaries.
For `polygonGate`

objects, the values of `scale`

will be used to determine scale factors
in the direction of each of the 2 dimensions of the gate (`scale_gate`

is not yet defined
for higher-dimensional `polytopeGate`

objects). **Important: ** For `ellipsoidGate`

objects, `scale`

determines scale factors for the major and minor axes of the ellipse, *in that order*. Scaling by a negative factor
will result in a reflection in the corresponding dimension.

transform_gate `flowCore::scale_gate`

if (FALSE) { # Scales both dimensions by a factor of 5 scale_gate(gs, node, 5) # Shrinks the gate in the first dimension by factor of 1/2 # and expands it in the other dimension by factor of 3 scale_gate(gs, node, c(0.5,3)) }