Identify clusters of cells by a shared nearest neighbor (SNN) modularity optimization
based clustering algorithm. First calculate k-nearest neighbors and construct
the SNN graph. Then optimize the modularity function to determine clusters.
For a full description of the algorithms, see Waltman and van Eck (2013)
*The European Physical Journal B*.

```
FindClusters(object, genes.use = NULL, pc.use = NULL, k.param = 30,
k.scale = 25, plot.SNN = FALSE, prune.SNN = 1/15, save.SNN = FALSE,
reuse.SNN = FALSE, do.sparse = FALSE, modularity.fxn = 1,
resolution = 0.8, algorithm = 1, n.start = 100, n.iter = 10,
random.seed = 0, print.output = TRUE)
```

object

Seurat object

genes.use

Gene expression data

pc.use

Which PCs to use for construction of the SNN graph

k.param

Defines k for the k-nearest neighbor algorithm

k.scale

granularity option for k.param

plot.SNN

Plot the SNN graph

prune.SNN

Stringency of pruning for the SNN graph (0 - no pruning, 1 - prune everything)

save.SNN

Whether to save the SNN in an object slot

reuse.SNN

Force utilization of stored SNN. If none store, this will throw an error.

do.sparse

Option to store and use SNN matrix as a sparse matrix. May be necessary datasets containing a large number of cells.

modularity.fxn

Modularity function (1 = standard; 2 = alternative).

resolution

Value of the resolution parameter, use a value above (below) 1.0 if you want to obtain a larger (smaller) number of communities.

algorithm

Algorithm for modularity optimization (1 = original Louvain algorithm; 2 = Louvain algorithm with multilevel refinement; 3 = SLM algorithm).

n.start

Number of random starts.

n.iter

Maximal number of iterations per random start.

random.seed

Seed of the random number generator.

print.output

Whether or not to print output to the console

Returns a Seurat object and optionally the SNN matrix, object@ident has been updated with new cluster info