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 ...


11

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 ...


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.


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

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:...


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 ...


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 ...


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

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

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 ...


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

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

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 ...


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 ...


2

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


2

There's no need to normalize them, you're not comparing them. Just use them as they are.


2

If I'm interested to get normalized gene counts, can I go ahead and multiple each individual's norm.factor into its gene counts? For example, the expected count for IND1 for Gene1 is 100 and it's norm.factor is 0.80, can I say that the normalized gene count is 100*0.80=80? No; you divide, but if you poke around, you can probably find a way to get ...


2

FPKM, RPKM are ways of normalising for both sequencing depth and gene length. You first calculate a scaling factor (SF = #read/1Mil),you then divide the genes counts for the SF(RPM = # counts/SF), and finally you divide by the length of the gene (RPM/length(gene)). Each sample has a different SF meaning that you should not compare values from different ...


2

Either of the first two columns are fine to use, though I personally prefer the "intersectionNotEmpty" one. As an aside, that looks like a custom format file produced from post-processing htseq-count output.


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