<p>SingleR, a novel computational method for unbiased cell type recognition of scRNA-seq:
<a href="https://github.com/dviraran/SingleR" rel="nofollow noreferrer">https://github.com/dviraran/SingleR</a></p>

CC BY-SA 4.0
2019-07-09T14:53:38.980Z
Welcome to the site.  Could you expand your answer to include how to use this tool to answer the question?
Bioathlete
CC BY-SA 4.0
2019-07-09T11:49:30.173Z
2019-07-09T11:49:30.173Z
Shrek
<p><strong>singleCellNet</strong> is a computational method using supervised machine learning for <strong>quantitatively</strong> <strong>cell type annotation</strong>. singleCellNet also enables <strong>cross-platform</strong> and <strong>cross-species</strong> comparison. It is also actively-supported. </p>

<p>Here is the github <a href="https://github.com/pcahan1/singleCellNet" rel="nofollow noreferrer">https://github.com/pcahan1/singleCellNet</a>
, and the vignette <a href="https://pcahan1.github.io/singleCellNet/" rel="nofollow noreferrer">https://pcahan1.github.io/singleCellNet/</a></p>

CC BY-SA 4.0
2020-01-14T17:02:01.170Z
2020-01-14T17:02:01.170Z
yuqi_yuqi
<p>We have recently published a web-based tool called <a href="https://aekiz.shinyapps.io/CIPR/" rel="nofollow noreferrer">CIPR</a> (cluster identity predictor) that helps with cluster annotations. You can select one of 7 reference datasets (some contains neurons) or upload a custom reference gene expression file for predicting cluster identity. You can read the <a href="https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-020-3538-2" rel="nofollow noreferrer">manuscript</a> for more information about how the algorithm works, but in a nutshell, it compares differentially expressed genes or global expression patterns within your data to known reference datasets and creates quick visual outputs. I find it helpful for interactive analyses where I try different clustering parameters and such.</p>
<p><a href="https://genomebiology.biomedcentral.com/articles/10.1186/s13059-019-1795-z" rel="nofollow noreferrer">This article</a> is a good resource that compares different cluster calling algorithms.</p>

CC BY-SA 4.0
2020-07-27T20:18:54.310Z
2020-07-27T20:18:54.310Z
Atakan
<p>I do not know of such software.</p>

<p>However, I believe this effort is a bit misdirected. The purpose of single-cell sequencing is to get a better understanding of cells; their heterogeneity and functional diversity or developmental / biological processes such as differentiation, using a higher "resolution" method. In other words, if we had the methods you are asking for, there would be no need for the single-cell experiment.</p>

<p>Running your data through some pipeline utilizing previous knowledge has the danger of forcing ideas on the data, rather than seeing what the data tells you: it would be better to try and understand and explain the biologically relevant heterogeneity and diversity in your cells, together with a critical comparison of cell type characteristics (expression of genes, pathways) with knowledge described in literature.
This question is also very similar to the <a href="https://bioinformatics.stackexchange.com/questions/3253/assign-cell-types-to-groups-of-cells-based-on-their-gene-expression-profiles/3296#3296">one you previously asked</a> and was answered.</p>

<p>Also good to recognize that your approach has a lot of implicit assumptions, such as: cells can be clearly categorized as +/- expression for each gene, or it ignores the systems level (networks and pathways), thus again forcing concepts on the data.</p>

<hr>

<p>This said, one method would be to construct a table listing cell type markers as described in the linked answer above, then write a script that determines a cutoff value for expression of genes in your data (see <a href="https://bioinformatics.stackexchange.com/questions/693/how-can-we-distinguish-between-true-zero-and-dropout-zero-counts-in-single-cell">this</a>), then ranks cell types for each cell. For example, you can measure the number or proportion of uniquely genes expressed (although that's very simplistic).</p>

<p>Another option, if you are familiar with machine learning, is to train a classifier on an annotated dataset, and then use that on new data.</p>

<p>Also see a convenience function below, which requires a table of marker genes for each cell cluster (i.e. (the <code>Seurat::FindAllMarkers()</code> output), and a reference df listing genes and corresponding cell types in its HGNC_symbol and Cell_type columns, and returns the table with listing clusters, their marker genes and corresponding cell types.</p>

<pre><code>getCelltypes &lt;- function(markers, reference) {
  marker.celltype &lt;- markers
  marker.celltype$Cell_type &lt;- marker.celltype$gene
  marker.celltype$Cell_type &lt;- with(reference, celltype[match(marker.celltype$Cell_type, gene)])
  return(marker.celltype)
}
</code></pre>

<p>Many variants of this reference table and function can be created, feel free to modify it.</p>

<p>In the future, I think we can expect such classifier software that uses reference data from the Human Protein Atlas, HCA and similar projects.</p>

CC BY-SA 4.0
2018-05-29T15:13:33.497Z
2018-05-29T15:13:33.497Z
Peter
<p>In order to define which cell is of which type we need to identify a set of rules, for instance neurons should express one of the following: <code>Thy1</code>, <code>Rbfox3</code>, <code>MAP2</code>, <code>Camk2b</code>, <code>Gad1</code>,<code>Cck</code>, <code>Reln</code>, and should not express any of the following: <code>cd45</code>, <code>Tmem119</code>, <code>CD11b</code>, ... and others. Maybe <code>Rbfox3</code> should always be expressed in any neurons. So, these rules need to be compiled manually as I understand to identify each cell type, from the literature. I would assume that many people already faced this issue, and maybe came up with software to do that? Are there any software where we would be able to supply a matrix of single cell expression data and have the types assigned with certain degree of certainty?</p>

<p>I know that maybe we can also use heatmaps for that, like:</p>

<p><a href="https://bioinformatics.stackexchange.com/questions/2547/cell-type-specific-genes-heatmap-using-rank-based-approach">cell type specific genes - heatmap using rank based approach</a></p>

<p>But again, this seems too manual work. Besides, I do not think that we can assign different neuronal types based on just a heatmap.</p>

<scrnaseq>
Specific cell type identification in Single Cell Sequencing
# Specific cell type identification in Single Cell Sequencing

(Asked by: username_0 on 2018-05-26)

In order to define which cell is of which type we need to identify a set of rules, for instance neurons should express one of the following: `Thy1`, `Rbfox3`, `MAP2`, `Camk2b`, `Gad1`,`Cck`, `Reln`, and should not express any of the following: `cd45`, `Tmem119`, `CD11b`, ... and others. Maybe `Rbfox3` should always be expressed in any neurons. So, these rules need to be compiled manually as I understand to identify each cell type, from the literature. I would assume that many people already faced this issue, and maybe came up with software to do that? Are there any software where we would be able to supply a matrix of single cell expression data and have the types assigned with certain degree of certainty?

I know that maybe we can also use heatmaps for that, like:

[cell type specific genes - heatmap using rank based approach](https://bioinformatics.stackexchange.com/questions/2547/cell-type-specific-genes-heatmap-using-rank-based-approach)

But again, this seems too manual work. Besides, I do not think that we can assign different neuronal types based on just a heatmap.

**Tags:** scrnaseq

---

## 4 answers

### Answer by username_5 on 2018-05-29. Score: 6 | Accepted answer

I do not know of such software.
However, I believe this effort is a bit misdirected. The purpose of single-cell sequencing is to get a better understanding of cells; their heterogeneity and functional diversity or developmental / biological processes such as differentiation, using a higher "resolution" method. In other words, if we had the methods you are asking for, there would be no need for the single-cell experiment.
Running your data through some pipeline utilizing previous knowledge has the danger of forcing ideas on the data, rather than seeing what the data tells you: it would be better to try and understand and explain the biologically relevant heterogeneity and diversity in your cells, together with a critical comparison of cell type characteristics (expression of genes, pathways) with knowledge described in literature.
This question is also very similar to the one you previously asked and was answered.
Also good to recognize that your approach has a lot of implicit assumptions, such as: cells can be clearly categorized as +/- expression for each gene, or it ignores the systems level (networks and pathways), thus again forcing concepts on the data.

This said, one method would be to construct a table listing cell type markers as described in the linked answer above, then write a script that determines a cutoff value for expression of genes in your data (see this), then ranks cell types for each cell. For example, you can measure the number or proportion of uniquely genes expressed (although that's very simplistic).
Another option, if you are familiar with machine learning, is to train a classifier on an annotated dataset, and then use that on new data.
Also see a convenience function below, which requires a table of marker genes for each cell cluster (i.e. (the Seurat::FindAllMarkers() output), and a reference df listing genes and corresponding cell types in its HGNC_symbol and Cell_type columns, and returns the table with listing clusters, their marker genes and corresponding cell types.
getCelltypes <- function(markers, reference) {
  marker.celltype <- markers
  marker.celltype$Cell_type <- marker.celltype$gene
  marker.celltype$Cell_type <- with(reference, celltype[match(marker.celltype$Cell_type, gene)])
  return(marker.celltype)
}

Many variants of this reference table and function can be created, feel free to modify it.
In the future, I think we can expect such classifier software that uses reference data from the Human Protein Atlas, HCA and similar projects.


---

### Answer by username_1 on 2019-07-09. Score: 1

SingleR, a novel computational method for unbiased cell type recognition of scRNA-seq:
<https://github.com/dviraran/SingleR>

> **Comments:**
> **username_2**: Welcome to the site.  Could you expand your answer to include how to use this tool to answer the question?  

---

### Answer by username_3 on 2020-01-14. Score: 1

**singleCellNet** is a computational method using supervised machine learning for **quantitatively** **cell type annotation**. singleCellNet also enables **cross-platform** and **cross-species** comparison. It is also actively-supported.

Here is the github <https://github.com/pcahan1/singleCellNet>
, and the vignette <https://pcahan1.github.io/singleCellNet/>


---

### Answer by username_4 on 2020-07-27. Score: 0

We have recently published a web-based tool called [CIPR](https://aekiz.shinyapps.io/CIPR/) (cluster identity predictor) that helps with cluster annotations. You can select one of 7 reference datasets (some contains neurons) or upload a custom reference gene expression file for predicting cluster identity. You can read the [manuscript](https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-020-3538-2) for more information about how the algorithm works, but in a nutshell, it compares differentially expressed genes or global expression patterns within your data to known reference datasets and creates quick visual outputs. I find it helpful for interactive analyses where I try different clustering parameters and such.

[This article](https://genomebiology.biomedcentral.com/articles/10.1186/s13059-019-1795-z) is a good resource that compares different cluster calling algorithms.


---

