2
$\begingroup$

Given a gene expression dataset with 99 samples and 10000 features, it is required to find clusters of samples in the dataset.

Now taking the features and finding their means and subtracting those means from each feature is not the same as taking the samples, finding their means and subtracting these means from each sample.

So what is the proper way: should we normalize the features or the samples?

$\endgroup$

2 Answers 2

5
$\begingroup$

Strictly speaking - there is no proper way to do this. It depends on your problem and more specifically - what you know about your dataset and what you are trying to achieve.

If, for example, in your type of dataset each sample can have different mean for technical reasons, like the amount of DNA used to measure gene expression, then subtracting the mean from each sample would make them more comparable to each other. However this procedure also carries a downside: it might be unreasonable for you to assume that the total amount of expression is the same in all samples.

On the other hand subtracting a mean from each feature (gene expression) would force all genes to have the same average level of expression. As a preprocessing step for the dataset - this in most cases is more unreasonable than subtracting means from each sample. However it might be done as a first step before applying some other procedure, like principal component analysis.


Now you specifically want to find the clusters of samples. It depends on how you will do this, but you will probably have to find distances between each pair of samples. So in this case:

  • Subtracting the means of each sample will make it so that the average gene expression within a sample have no influence on the output of your clustering result. This can be done to remove technical noise. But can also reduce real differences between samples. If you suspect technical noise to have a bigger influence on average sample expression compared to real differences - subtracting the mean is probably a reasonable step.

  • Subtracting the means of each feature will make it so that the differences in average expression between genes will have no effect on your clustering result. After this each gene will carry a more similar weight to the final between-sample distance measure. And would reduce the "background" similarity in cases where the average expression of each gene is very similar across all samples.

$\endgroup$
4
  • $\begingroup$ Thanks for the answer. When you say "means of each sample", does the "mean" here refer to the "sum of the magnitude of each sample vector divided by the number of samples" $or$ does "means of each sample" refer to "adding the gene expression of all features for one gene and dividing it by number of features". And similarly, what do you mean by saying "means of each feature". $\endgroup$ Commented Apr 7, 2019 at 18:34
  • $\begingroup$ When I say "sample", I mean one data-point in the data-set. $\endgroup$ Commented Apr 7, 2019 at 18:50
  • 1
    $\begingroup$ In the dataset you descried it seems like you have 99 samples and 10,000 genes. When I say sample I mean one of those 99 - each of the samples have 10,000 values (genes). The mean of the sample is the mean across all of those 10,000 values for that sample. $\endgroup$ Commented Apr 7, 2019 at 19:19
  • 1
    $\begingroup$ You wrote: "adding the gene expression of all features for one gene and dividing it by number of features" - with the view I had in mind this would make little sense. I used the terms "gene" and "feature" to refer to the same thing - those 10,000 values that one sample contains. $\endgroup$ Commented Apr 7, 2019 at 19:20
1
$\begingroup$

Be aware that "normalization" has different meanings. I assume that you want to "center" the data distribution around some reference point (regardless the fact that the distribution is actually normal in shape).

In my lab we sometimes "normalize" gene expression data by subtracting the median across all samples (i.e. we calculate the median expression level of gene A across all samples, and then we subtract it from gene A in sample1, sample 2, etc.). This way, expression of gene A will be > 0 in over-expressed samples, and < 0 in under-expressed samples. We do this for visualization purposes only (e.g. for plotting a heatmap).

Another option would be calculating the mean (or median) of the control samples only, so gene expression will be centered around what is considered normal for healthy untreated individuals.

$\endgroup$

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.