Converting your data.frame to a matrix (and then removing the data.frame) will often free up enough memory that you won't run into this. Note that a matrix is more memory efficient than a data.frame and you're requiring Rtsne() to hold both in memory at the same time (many math-centric functions will end up converting things to a matrix at some point for ...
If your question is: can probeset IDs from different platforms be mapped to one another in a similar way as mapping probesets to genes, then the answer is: Yes. BioMart allows you to map almost anything that has an ID to anything else that has an ID.
You can use BioMart either via the web interface or programatically. A brief guide to using the web ...
According to the manual, all you need to do is:
gseGSE16146 <- getGEO('GSE16146', GSEMatrix=FALSE)
As explanation, getGEO() outputs by default to GSEMatrix=TRUE and returns a list of ExpressionSet objects. You should get what you were looking for with:
The manual has also a paragraph about ...
Instead of biomaRt, it is also possible to use the mapping databases built into Bioconductor itself, and map from probe to gene, and then from gene to probe in the second. Some R code to convert between hgu133 and hgu95 using the same probe ID provided in another:
query_probe <- "210519_s_at"
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 ...
Have a look at the GSVA package. It allows to convert a matrix with genes x Samples to a pathways x Samples using several methods ssgsea, gage, gsva...
Afterwards you can use that matrix as input for differential expression of pathways or classification algorithms or whatever.
However it depends on the input of the "pathways" you give it. Make sure that ...
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....
Usually with microarrays you want to make a case/control comparison, so I am going to assume that.
Data from different array platforms is generally difficult to compare: each platform is measuring potentially a different part of the expression of the gene (different exons or different regions), each platform is likely to need different normalisation ...
You add the points with geom_point(). Just remove it and you will get your "empty" boxplot.
q <- ggboxplot(B, x = "Type", y = "Gene",
color = "black", palette = "npg",
ylab = 'Gene expression', xlab=FALSE,
Unfortunately I couldn't use stat_compare_means(method = "t.test") and ...
Yes, you can use limma for this mixed model approach. Like you suggest, the random effect (persons) can be put in duplicateCorrelation().
Here is a similar example with RNAseq data, on bioconductor support site.
You're misinterpreting the moderated T-statistic, it's basically the fold-change divided by its variance. The p-value comes directly from that, so if you filter by moderated fold-change you're just setting an unknown (unless you go through the trouble of figuring it out) p-value threshold. Instead, do exactly as you've been doing and set appropriate (...
Using group_by from dplyr
You can use group_by function from dplyr to calculate the mean of each gene symbol in each samples:
summarise_at(vars(contains("p")), funs(mean(., na.rm = TRUE)))
# A tibble: 2 x 4
Gene.Symbol p1 p2 p3
<chr> <dbl> <dbl> <dbl>
You ask about which "genes are expressed" and then you mention "if a gene is up or down regulated". These are different, and given your application I think what you actually want to know if these marker genes are expressed. This is not a question of up/down-regulation relative to a control, so you do not need control samples for this.
After checking the files myself, it does seem like gene identifiers indeed have been updated. Some that were missing have been added with identifiers and some have additional identifiers now.
Among some other things that were updated from 2007 include:
Genome version NCBI Version 36.1 => GRCh37
Thought this would be a ...
Adam Locke (a collaborator of this project) suggests that removing covariate information for the unselected individuals (i.e. setting it to NA) works around this problem:
I believe the problem is that he is using a pre-computed kinship matrix including both males and females, and when using the “—peopleIncludeFile” it can’t properly select the right ...
Other answers explain why there might not be one to one mapping between the probes.
The AbsID database does conversion based on mapping the probe sequences to a genome build, and then determines mappings based on overlapping genome alignment coordinates. This is really useful if you want to be sure that two probes are actually likely measuring the same ...
It makes more sense to evaluate by separate the pathway or gene set you want and see if in the three datasets result in a coherent message than to merge these datasets, as you will mix batch effects and treatment effects.
When in several datasets one looks for the same statistic it is usually considered meta analysis, not integration.
This is a statistical question. What a higher z value means is that it is more extreme (if you assume a normal distribution), thus a more extreme value is less likely to happen by chance. Which is translated to a (lower) p-value.
What it is significant and not is arbitrary. Prior to the experiment you must decide which is your threshold, how much chance you ...
I am not sure how much you know about bioinformatics already, can you use R? For a bioinformatician looking at QC for microarrays should not be a big deal, at least for me it would take maybe a day (or two) to get this done. However, if you never used R and want to start from scratch, it depends on how quickly you learn how to deal with arrays and QC. There ...
Based on the info you provide, ArrayBin R package provides you the necessary tools:
binarize.array() from ArrayBin, allowing:
Implementation of an adaptive method for binarizing gene expression data on a per-probe basis and demonstrate the superior effectiveness of our method when compared with other, commonly used approaches. This adaptive binarization ...
Is the annotation able to distinguish such 'same' tags, during DGE analysis?
No, you'll end up discarding such probes (assuming you have a reason to actually use microarrays still).
Why aren't tags unique?
Platforms such as HG-U133 date back to 2002 (meaning they were designed a few years before that), when the human reference genome (and the reference ...
You can use the following code to calculate the coefficient of variation:
# expr is your expression matrix.
SD <- apply(expr, 1, sd)
CV <- sqrt(exp(SD^2) - 1)
It might be implemented in some package but it is so brief that you can write it again yourself. Then you can filter out those that are below certain percentage of the distribution of CV (like ...
I think it is very hard to say which are the closest because they are not really comparable. But since you are using Spearman correlation, I guess RPKM, FPKM, and TPM do not change the order of gene expression levels. You might also want to normalize RNA-seq and microarray data so that they are more comparable.
I did a comparison of cDNA count data against microarray data that was published a few years ago:
For comparisons to published data (Fig. S2; Miller et al., 2012), a generalized linear model was fitted to the relationship between log-transformed microarray and VSTPk expression levels obtained from the ImmGen Project database, and was used to transform the ...
Treat your disease samples as individual groups and then follow the normal routine in limma to use contrasts to compare two group (the control group versus individual disease samples). Note that you need to think long and hard about what these results then mean. Normally we compare groups because then the results should generalize to other samples. That will ...
It seems like you are missing function "pathwayAnalysis" presumably from package BLMA, i.e. library('BLMA') should resolve your error once you install that package.
-- edit 1 --
Ha, stupid me. Package BLMA contains file "pathwayAnalysis.R", not the function. A package that contains a FUNCTION called pathwayAnalysis is IntClust. You should try that one.
Well, if you use a SOFT formatted files:
#You can read your file
gds <- getGEO(filename="GSE9838_family.soft.gz")
# and check it
#then you usually would try to use an exprs() accessor to retrieve the expression matrix:
# but in this case you will get an error revealing that it is a GSE datastructure
# eg. is ...
I always assumed that these tags, such as 239963_at you show, mean that the sequence is not specific of a genome region. This means it cannot be assigned to any gene for DGE.
It could be due to changes on the reference genome or due to a faulty design of the tag sequence. However once in the microarray template they cannot be changed without introducing ...