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*. Thanks to Nigel Delaney (evolvedmicrobe@github) for the rewrite of the Java modularity optimizer code in Rcpp!

FindClusters(object, ...) # S3 method for default FindClusters( object, modularity.fxn = 1, initial.membership = NULL, node.sizes = NULL, resolution = 0.8, method = "matrix", algorithm = 1, n.start = 10, n.iter = 10, random.seed = 0, group.singletons = TRUE, temp.file.location = NULL, edge.file.name = NULL, verbose = TRUE, ... ) # S3 method for Seurat FindClusters( object, graph.name = NULL, modularity.fxn = 1, initial.membership = NULL, node.sizes = NULL, resolution = 0.8, method = "matrix", algorithm = 1, n.start = 10, n.iter = 10, random.seed = 0, group.singletons = TRUE, temp.file.location = NULL, edge.file.name = NULL, verbose = TRUE, ... )

object | An object |
---|---|

... | Arguments passed to other methods |

modularity.fxn | Modularity function (1 = standard; 2 = alternative). |

initial.membership, node.sizes | Parameters to pass to the Python leidenalg function. |

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

method | Method for running leiden (defaults to matrix which is fast for small datasets). Enable method = "igraph" to avoid casting large data to a dense matrix. |

algorithm | Algorithm for modularity optimization (1 = original Louvain algorithm; 2 = Louvain algorithm with multilevel refinement; 3 = SLM algorithm; 4 = Leiden algorithm). Leiden requires the leidenalg python. |

n.start | Number of random starts. |

n.iter | Maximal number of iterations per random start. |

random.seed | Seed of the random number generator. |

group.singletons | Group singletons into nearest cluster. If FALSE, assign all singletons to a "singleton" group |

temp.file.location | Directory where intermediate files will be written. Specify the ABSOLUTE path. |

edge.file.name | Edge file to use as input for modularity optimizer jar. |

verbose | Print output |

graph.name | Name of graph to use for the clustering algorithm |

Returns a Seurat object where the idents have been updated with new cluster info; latest clustering results will be stored in object metadata under 'seurat_clusters'. Note that 'seurat_clusters' will be overwritten everytime FindClusters is run

To run Leiden algorithm, you must first install the leidenalg python package (e.g. via pip install leidenalg), see Traag et al (2018).