I have TCGA gene expression data. I'm interested in identifying gene expression signatures using the data.

I would like to know whether there are any tools or R packages for identifying gene signatures.

How are gene signatures different from GSEA?

  • $\begingroup$ @gringer, usually these is the wording used to denote genes that their expression is characteristic of a specific group of cells (cell lines or not), I read it also as marker genes (not in the sense that are used because one can mark them in the surface or in a specific region of the cell but because the expression pattern is specific of these cells). But user335123 Could you confirm that we are talking about the same meaning? $\endgroup$
    – llrs
    Commented Apr 4, 2018 at 10:28
  • $\begingroup$ @Llopis yes what said was right !! $\endgroup$ Commented Apr 4, 2018 at 11:13
  • $\begingroup$ Why do you want to do this? I have never seen any reason to generate new gene signatures/gene sets from TCGA, since they already exist for humans. Or are you trying to create signatures for specific cancer types? $\endgroup$
    – Devon Ryan
    Commented Apr 4, 2018 at 14:15
  • $\begingroup$ BTW, if the (more standard) definition of a gene signature from @Llopis is correct then please edit your post accordingly. $\endgroup$
    – Devon Ryan
    Commented Apr 4, 2018 at 14:16
  • $\begingroup$ @Devon, do you mean that exists other gene signatures for humans (in a database)? Could you please provide me a link or a reference? User I'will answer later $\endgroup$
    – llrs
    Commented Apr 4, 2018 at 14:20

3 Answers 3


There is no golden/standard way to define a gene signature but they are completely different from a gene set enrichment analysis (GSEA). I will start with how to obtain a gene signature:

Usually this kind of signatures are defined by comparing a group against another ie doing a differential gene expression analysis. One then selects the most up or down regulated genes and defines them as the signature of the group of cells. That's how the gene sets of the MSigDB which are not from (or derived from) pathway databases or gene ontologies are defined. There is no gold threshold of a fold change or a specific number of genes, it (highly) depends on the experiment you run and how good are the isolation of the cells.
Tools: DESeq2, limma, edgeR,...

As suggested by gringer, another way is to find which genes are expressed together (independently of how do they relate to other groups). This method relays on having a good enough number of samples from the same condition to be able to identify which genes are expressed the same way in those cells. If these genes are not expressed that way in other cell lines, then you have your signature for this group. Again, there isn't a golden method, different types of co-expression networks can be build and depends on how specific do you want to be or which is the data provided.
Tools: WGCNA, diffcoexp, TReNA,...

This is different from a gene set enrichment analysis1, which consists on evaluating if a group of genes (usually a gene set, a pathway or genes from a specific gene ontology) are not randomly sorted in a sorted list of genes (usually this sorted list is the fold-change of a differential analysis).

There are several methods developed depending on the null hypothesis, the type of sub-method and what do they take into account...
Tools: GSEA, PLAGUE, GSVA, limma, fgsea,...

TLDR: To perform a gene set enrichment you don't need a gene signature but a gene set (that can be a gene signature or a pathway or a random group).

1: Note that gene set enrichment analyisis is different from gene enrichment analysis. For a good review on the methods I recommend this article


If you're interested in an unbiased approach you could have a look at Gene Correlation Network Analysis. WGCNA is a fairly old R package, with a somewhat confusing workflow and results that can be difficult to interpret. It also needs a large sample set, preferably from fairly different biological conditions, to produce meaningful results.

Asking how "gene expression signatures" differ from GSEA is like asking how surface textures differ from trademarks. Gene set enrichment analysis is for looking at gene rankings and seeing how they compare to a known / existing gene set. A gene set is considered "enriched" if the majority of the gene set appears in high-ranked genes (or alternatively in low-ranked genes), rather than a more even distribution of the set across the ranked gene list. Most commonly people will rank genes based on expression (or fold change), but the method is agnostic to the nature of the ranking.

  • $\begingroup$ WGCNA does need a large sample set but from the same biological condition in order to find the meaningful correlations between genes, otherwise the correlations are not good enough to infer that there is a relationship between genes $\endgroup$
    – llrs
    Commented Apr 4, 2018 at 14:32
  • $\begingroup$ What does large sample set mean here? how many samples you mean? $\endgroup$ Commented Apr 4, 2018 at 16:25
  • 2
    $\begingroup$ I'll start the ball rolling with a suggestion of 40 samples: 40 cancer subtypes that are a good representation of the biological variation that you'll be testing on $\endgroup$
    – gringer
    Commented Apr 4, 2018 at 20:47

Gene Signatures are sets of genes to report a consensus signal or function. They are not defined in a particular way but can be defined by any chosen group depending on the biological function that you are interested in. Typically these are defined by differential gene expression analysis or principal component analysis, although other approaches such as network analysis or time-course data could also be used.

There are plenty of examples of sets of genes published as gene signatures (especially in the field of cancer research). Those that have been cross-validated in other datasets or replicated by other research groups are ideal. If you wish to generate such a “signature” for a particular biological function, you could follow the approaches demonstrated in these published signatures (especially those that have been widely used and cited).

A gene expression signature is used to generate a consensus expression signal for these groups of genes (representing the given biological function). A widely accepted way to do this across samples of bulk RNASeq (or microarray data) is a “meta-gene” from the first eigenvector (v[,1]) of the singular value decomposition (SVD). This dimension reduction identifies a major contributor to variation across samples (in these genes) without negatively correlated genes averaging out. Dimension reduction can also be achieved by PCA and tSNE, depending on the requirements of your analysis.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.