17

You should use box plots and PCA plot. Let's take a look at the RUV paper: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4404308/ Before normalization and after UQ normalization: Libraries do not cluster as expected according to treatment. ... for UQ-normalized counts. UQ normalization does not lead to better clustering of the samples... Before ...


12

The normalized counts themselves can be accessed with counts(dds, normalized=T). Now as to what the baseMean actually means, that will depend upon whether an "expanded model matrix" is in use or not. Given your previous question, we can see that geno_treat has a bunch of levels, which means that expanded models are not in use. In such cases, the baseMean ...


9

You may consider using RUVSeq. Here is an excerpt from the 2013 Nature Biotechnology publication: We evaluate the performance of the External RNA Control Consortium (ERCC) spike-in controls and investigate the possibility of using them directly for normalization. We show that the spike-ins are not reliable enough to be used in standard global-scaling or ...


9

The first column contains Ensembl gene identifiers, and the suffix is a version number that can be used to track changes to the gene annotations over time. From the Ensembl Stable IDs documentation: Ensembl annotation uses a system of stable IDs that have prefixes based on the species scientific name plus the feature type, followed by a series of digits ...


8

Visual inspection with histograms, boxplots, or some other distribution visualization is the way to go. Prior to normalization, your abundances may look something like this. Post-normalization, they should look something like this. See this blog post for example code.


6

EPIC data can be processed in the same manner as the previous iteration of methylation array data from Illumina (450k). This means that starting with .idat files, normalization should be performed (for example, via the minfi package). A recent paper from the creators of minfi is particularly helpful because it makes clear that normalized EPIC data from their ...


6

It depends what you mean by “normalised”. As Devon said, the normalized = TRUE argument to the count function gives you normalised counts. However, these are “only” library-size normalised (i.e. divided by the sizeFactors(dds)). However, as the vignette explains, downstream processing generally requires more advanced normalisation, to account for the ...


6

You can use the quantile function in base R to get the value of a particular quantile (e.g. 0.75 for the upper quartile). This can then be used as a factor for normalisation: divide the observed expression by this number. ## set up simulated data data.mat <- floor(10^data.frame(sapply(1:5,function(x){rnorm(100)}))); colnames(data.mat) <- paste0("S",1:...


6

Transcript abundance quantification is a tricky topic since a read often could belong to several transcripts, so any "count" is a best guess as to which transcript it actually originates from. That being said, there are tools that can help you here: salmon (as you mentioned) to quanitfy. Run it with --numGibbsSamples 50 (or higher if your computer ...


5

You see negative values with your function because you're setting the average of each row to 0 and its standard deviation to 1. In general, I would trust a standard normalization method (rma in this case) more than some random "truncate and then scale the rows" method. Your method isn't even doing any between-array normalization, which is the benefit of rma....


5

The counts files for GSE89225 is the output of HTSeq-count as a large matrix. Unless you are developing a differential expression package yourself you should not attempt to directly use this. Rather, you should load it into R and use packages such as DESeq2, edgeR, or limma (those are the most popular ones). For convenience, in DESeq2 you would want the ...


5

You have only two samples? You aren't going to be able to draw strong conclusions from that no matter what you do. Clever statistics don't work without replicates.


4

The functions look correct, but calculate a few by hand and ensure they match. One thing I should note is that the subtraction of the Ct values usually happens before an average is made, since generally both are in the same well. In other word, subtract the reference Ct from the gene of interest Ct from the same well and then average the dCts. This order is ...


4

We have added ERCC spike-ins to all our RNASeq data, just in case other people might find it useful in the future. However, I have never used it in my own analyses because I can't think of a reasonable way that it could be used. The typical recommendation for ERCC is to add it in proportion to the input RNA amount, but that makes an assumption that total ...


4

My primary concern with using the top ~1% or so in upper quantile normalization is that it's going to be prone to the same robustness issues that RPKM/FPKMs run in to. That is, if for whatever technical reason you have to have a fair bit of variability in a couple very highly expressed genes (typically rRNAs, but one can imagine other genes) and the set of ...


4

I strongly suggest that you not try to come up with your own package for this when things like CSAW already exist in bioconductor and provide a number of useful normalization options. For visualization purposes, I think it's best to simply take the log2 ratio (e.g., using bamCompare from deepTools) or alternatively normalize by total coverage (possibly ...


4

On google there are many tutorials about quantile normalzation, for example here. In that tutorial they made a function to calculate quantile normalization. Here an example with that function on your small data set. data gene_id SRR896664 SRR896663 SRR896665 1 ENSG00000000003 46106 36353 40614 2 ENSG00000000005 198 399 ...


4

This is a common question, and the answer is while you can calculate this, it's not statistically robust. You're likely to arrive at false conclusions. Why is this? Because while TPM is something you can calculate from a single sample, your question involves multiple replicates and those replicates vary between each other. Counts in units of TPM are missing ...


3

It's not a good idea to do tpm normalisation prior to differential expression analysis, because the actual read counts are useful to determine shot noise and statistical significance. DESeq2 includes read normalisation as part of its methods for differential expression analysis. I think shot noise is best explained in terms of shooting photons at a target, ...


3

Ma be CQN from Bioconductor will be useful, though it doesn't perform just quantile normalisation.


3

I would suggest using a likelihood ratio test for differential expression using logistic regression with batch as a latent variable. In Seurat you can do: markers <- FindAllMarkers(object, test.use = 'LR', latent.vars = 'batch') (change "object" and "batch" accordingly) See https://www.biorxiv.org/content/early/2018/02/14/258566 from Lior Pachter's ...


3

It depends on what test or analysis you want to do, whether you need intensities (expression values) or z-scores. If you want to do statistical analysis, such as finding differentially expressed genes between groups of patients (e.g., with limma), you don't want to use z-scores. But you use normalized intensities (for microarrays) or start with raw counts ...


3

MAGIC assumes input data has been both library-size normalized, and either log or sqrt transformed prior to imputation (see also: MAGIC tutorial). Additionally, any graph-based methods (MAGIC, PHATE, t-SNE, UMAP, spectral clustering, Louvain, etc etc) will give flawed results if your data contains a batch effect, since the neighbourhood graph would reflect ...


3

I normalized a high throughput dataset for a school project using DESeq library using the script bellow. The code is based on a lesson I had. My goal was determine the over expressed genes, but the normalization step should be the same. ##################################################################### ### DATA PRE-PROCESSING: Normalising gene expression ...


3

What I have generally done in the past is to process the data using voom in the limma package for bulk RNASeq. Inside voom you can call for different normalization methods to be used - "TMM" works fine for me and, is advocated by many in the field. voom will output an object containing the normalized expression values in a log2 scale, which, also in my ...


3

One explanation could be that your mapping of clusters to timepoints is not accurate. There are other methods you could look at for doing this, for example scMap, scPred, or Seurat v3 (disclosure: I am one of the Seurat developers). Another possibility is that there is some problem in the calculation of the activation signature. You could instead look at ...


3

Your cluster labels come from graph clustering implemented in the FindClusters() function. The resulting clusters are then visualised with a 2D tSNE plot (via RunTSNE() and TSNEPlot()). So, your cluster 13 is not split into three sub-clusters but cells within cluster 13 look somewhat distant from each other on the tSNE plot. Having mentioned distances on a ...


3

It's safer to import everything. You'll want all the data for normalization and dispersion estimates.


2

I've given an answer about using how I normalise for PCA here. PCA works best if the data are normal-ish, but as models go it is fairly robust to fairly large deviations from normal. Transforming is not essential, but if data can be easily transformed into something that looks a bit more normal, then conclusions derived from looking at the PCA should be a ...


2

Supplementary File 5 and 6 contain the code you're looking for.


Only top voted, non community-wiki answers of a minimum length are eligible