5

I want to define two clusters of cells in my dataset and find marker genes that are specific to one and the other. Is there a way to do this in Seurat? Say, if I produce two subsets by the SubsetData function, is there a way to feed them into some other function that would calculate marker genes? If not, what other packages would you recommend for doing that?

If you look here:

https://satijalab.org/seurat/seurat_clustering_tutorial_part2.html

I just need a way to define ident myself, the number of levels (2) and assign numbers to each cell (0, 1), and then run DE between 0 and 1 clusters which is obvious how to do afterwards.

Kohl Kinning
  • 1,149
  • 6
  • 26
Nikita Vlasenko
  • 2,558
  • 3
  • 26
  • 38

2 Answers2

3

I think you are looking to FindAllMarkers function from Seurat. As you said, you just have to define your ident, that have to have the structure of a table (cell names as names and cluster as value):

pident=as.factor(clusters)
names(pident)=cellNames    
object1@ident=pident

And then run the FindAllMarkers function:

FindAllMarkers(object1, min.pct = 0.25, min.diff.pct = 0.25)

You can specify several parameters in this function (type of DE to perform, thresholds of expression, etc).

plat
  • 1,032
  • 5
  • 15
3

Seurat has functions for adding metadata and setting identities. Get unique cell names:

cell.labels <- seuratobject@ident

Replace column and its name with your cluster labels (e.g.), then:

seuratobject <- AddMetaData(seuratobject, metadata=cell.labels)
seuratobject <- SetAllIdent(seuratobject, id='yourclusterlabels')

Because you want to contrast two clusters against each other, I suggest using FindMarkers() as opposed to FindAllMarkers():

FindMarkers(object, ident.1, ident.2)

It can also compare combinations of clusters.

llrs
  • 4,693
  • 1
  • 18
  • 42
Peter
  • 2,634
  • 15
  • 33