BBKNN, an extremely fast graph-based data integration algorithm. It modifies
the neighbourhood construction step to produce a graph that is balanced
across all batches of the data.

```
runBBKNN(
inSCE,
useAssay = "logcounts",
batch = "batch",
reducedDimName = "BBKNN",
nComponents = 50L
)
```

## Arguments

- inSCE
Input SingleCellExperiment object

- useAssay
A single character indicating the name of the assay requiring
batch correction. Default `"logcounts"`

.

- batch
A single character indicating a field in `colData`

that
annotates the batches of each cell; or a vector/factor with the same length
as the number of cells. Default `"batch"`

.

- reducedDimName
A single character. The name for the corrected
low-dimensional representation. Will be saved to `reducedDim(inSCE)`

.
Default `"BBKNN"`

.

- nComponents
An integer. Number of principle components or the
dimensionality, adopted in the pre-PCA-computation step, the BBKNN step (for
how many PCs the algorithm takes into account), and the final UMAP
combination step where the value represent the dimensionality of the updated
reducedDim. Default `50L`

.

## Value

The input SingleCellExperiment object with
`reducedDim(inSCE, reducedDimName)`

updated.

## References

Krzysztof Polanski et al., 2020

## Examples

```
if (FALSE) {
data('sceBatches', package = 'singleCellTK')
logcounts(sceBatches) <- log1p(counts(sceBatches))
sceBatches <- runBBKNN(sceBatches, useAssay = "logcounts",
nComponents = 10)
}
```