Entering edit mode
                    2.3 years ago
        Rob
        
    
        ▴
    
    180
    I am using the following code to create a correlation plot between genes and a continuous variable. It gives me the correlation coefficient (R) and p-value on the plot. I want this to:
- give me FDR values
- How can I get R values and FDR values in a csv or excel file, Not just written on the image of plot?
code:
library(ggplot2)
library(plyr)
library(reshape2)
dat <- read.csv("Gene_variable_file.csv", check.name = FALSE, stringsAsFactors = FALSE, header = T)
df <- as.data.frame(dat)
# Basic scatter plot
ex <- melt(df, id.vars="continousVariable")
colnames(ex) <- c("continousVariable", "gene", "exprs")
#######################
  ####
  ggscatter(ex, x = "continousVariable", y = "exprs",
            add = "reg.line",                         
            add.params = list(color = "blue", fill = "lightgray"),
            color = "black", palette = "jco", fill = "lightgray",          
            #shape = "cyl",                            
            fullrange = TRUE,                       
            rug = TRUE, facet.by = "gene", cor.coef = T,
            title = "Sarco-Specific DEGs-SMA Correlation-FEMALE",
            conf.int = TRUE, 
            cor.coeff.args = list(),
            cor.method = "spearman",
            cor.coef.coord = c(NULL, NULL),
            cor.coef.size = 4,                               
  )+
    geom_vline(xintercept = 102, colour="red", linetype = "longdash")
This is how my data look like:

Thank you. It tried
broomfrom this link: https://cran.r-project.org/web/packages/broom/vignettes/broom.htmlBut which method I should use?
ttest?glm?lm? I used lm and I got all my p-values 1,1,1,1... which cannot be correct.which one from the following code will be my data in broom code?"
dat" or "ex"I used
exas my data inbroomBy the looks of things, it would be
ex. You'd need togroup_bygene in some way. I've always usedgroup_by, but this vignette suggestsnesting https://cran.r-project.org/web/packages/broom/vignettes/broom_and_dplyr.html.If you want to do pearson correlation, then
lmshould work fine, as the p-value on a linear model is identical to the p-value of a pearson's correlation. I'm not sure you can do spearman's that way though. You can usecor.test(method="spearman")though.I agree that it is unlikely that all your p-values or 1. However, all your FDRs/adjusted p-values being 1 is entirely possible.