Last updated: 2019-02-14

workflowr checks: (Click a bullet for more information)
  • R Markdown file: uncommitted changes The R Markdown file has unstaged changes. To know which version of the R Markdown file created these results, you’ll want to first commit it to the Git repo. If you’re still working on the analysis, you can ignore this warning. When you’re finished, you can run wflow_publish to commit the R Markdown file and build the HTML.

  • Environment: empty

    Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.

  • Seed: set.seed(20181119)

    The command set.seed(20181119) was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.

  • Session information: recorded

    Great job! Recording the operating system, R version, and package versions is critical for reproducibility.

  • Repository version: 01a5914

    Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility. The version displayed above was the version of the Git repository at the time these results were generated.

    Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish or wflow_git_commit). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:
    
    Ignored files:
        Ignored:    .Rproj.user/
    
    Unstaged changes:
        Modified:   analysis/enrichment.Rmd
    
    
    Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
Expand here to see past versions:
    File Version Author Date Message
    Rmd 01a5914 simingz 2019-02-14 permutation
    html 01a5914 simingz 2019-02-14 permutation


Get cis genes for each targted locus

# SNPfile: "/project2/xinhe/simingz/CROP-seq/scRNA_seq_SNP_list.txt"
module load mysql
mysql --user=genome --host=genome-mysql.cse.ucsc.edu -A -D hg19 -e '
select
 K.name2,
 K.name,
 S.name,
 S.avHet,
 S.chrom,
 S.chromStart,
 K.txStart,
 K.txEnd
from snp150 as S
left join refGene as K on
 (S.chrom=K.chrom and not(K.txEnd+50000<S.chromStart or S.chromEnd+50000<K.txStart))
where
 S.name in ("rs7148456","rs12895055","rs7170068","rs520843","rs12716973","rs2192932","rs17200916","rs1198588","rs324017","rs4151680","rs301791","rs324015","rs9882911","rs11633075","rs2027349","rs186132169","rs9661794","rs7936858","rs3861678","rs10933","rs6071578")' > /project2/xinhe/simingz/CROP-seq/cropseq/data/SNP_50000.txt

functions to get enrichment p values

pcut <- 0.05
fisher_cisg <- function(resm, cisg, pcut){
  res <- resm$table
  res.sig <- res[res$PValue < pcut, ]
  cisgres <- resm$table[cisg, ]
  cisgres <- cisgres[complete.cases(cisgres), ]
  cisgres.sig <- cisgres[cisgres$PValue < pcut, ]
  ct <- matrix(c(dim(cisgres.sig)[1], dim(cisgres)[1] - dim(cisgres.sig)[1], dim(res.sig)[1], dim(res)[1]-dim(res.sig)[1]), nrow = 2)
  print(ct)
  fisher.test(ct)
}

Enrichment of significant genes +/- 50kb of targeted SNPs

cisgene <- read.table("data/SNP_50000.txt", stringsAsFactors = F,sep="\t", header=T)
cisg <- unique(cisgene$name2)

using EdgeR QLF model, 10% filtering

load("data/edgeR-qlf-10%filter_res.Rd")
fisher_cisg(resm, cisg, pcut)
Loading required package: edgeR
Loading required package: limma
     [,1] [,2]
[1,]    4  612
[2,]   19 9009

    Fisher's Exact Test for Count Data

data:  ct
p-value = 0.0554
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
 0.7642145 9.3655805
sample estimates:
odds ratio 
  3.098467 

using EdgeR lrt model, 10% filtering

load("data/edgeR-lrt-10%filter_res.Rd")
fisher_cisg(resm, cisg, pcut)
     [,1] [,2]
[1,]    4  559
[2,]   19 9062

    Fisher's Exact Test for Count Data

data:  ct
p-value = 0.04201
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
  0.8413445 10.3169944
sample estimates:
odds ratio 
  3.412093 

Enrichment of significant genes +/- 200kb of targeted SNPs

cisgene <- read.table("data/SNP_200000.txt", stringsAsFactors = F,sep="\t", header=T)
cisg <- unique(cisgene$name2)

using EdgeR QLF model, 10% filtering

load("data/edgeR-qlf-10%filter_res.Rd")
fisher_cisg(resm, cisg, pcut)
     [,1] [,2]
[1,]    8  612
[2,]   69 9009

    Fisher's Exact Test for Count Data

data:  ct
p-value = 0.1557
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
 0.7054235 3.5761036
sample estimates:
odds ratio 
   1.70661 

using EdgeR lrt model, 10% filtering

load("data/edgeR-lrt-10%filter_res.Rd")
fisher_cisg(resm, cisg, pcut)
     [,1] [,2]
[1,]    8  559
[2,]   69 9062

    Fisher's Exact Test for Count Data

data:  ct
p-value = 0.08919
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
 0.7765322 3.9401042
sample estimates:
odds ratio 
  1.879465 

Enrichment of significant genes +/- 500kb of targeted SNPs

cisgene <- read.table("data/SNP_500000.txt", stringsAsFactors = F,sep="\t", header=T)
cisg <- unique(cisgene$name2)

using EdgeR QLF model, 10% filtering

load("data/edgeR-qlf-10%filter_res.Rd")
fisher_cisg(resm, cisg, pcut)
     [,1] [,2]
[1,]   13  612
[2,]  130 9009

    Fisher's Exact Test for Count Data

data:  ct
p-value = 0.1706
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
 0.7587635 2.6261486
sample estimates:
odds ratio 
  1.471976 

using EdgeR lrt model, 10% filtering

load("data/edgeR-lrt-10%filter_res.Rd")
fisher_cisg(resm, cisg, pcut)
     [,1] [,2]
[1,]   13  559
[2,]  130 9062

    Fisher's Exact Test for Count Data

data:  ct
p-value = 0.1044
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
 0.8351417 2.8937582
sample estimates:
odds ratio 
  1.620998 

Session information

sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Scientific Linux 7.4 (Nitrogen)

Matrix products: default
BLAS/LAPACK: /software/openblas-0.2.19-el7-x86_64/lib/libopenblas_haswellp-r0.2.19.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] edgeR_3.24.3 limma_3.38.2

loaded via a namespace (and not attached):
 [1] locfit_1.5-9.1    workflowr_1.1.1   Rcpp_1.0.0       
 [4] lattice_0.20-38   digest_0.6.18     rprojroot_1.3-2  
 [7] R.methodsS3_1.7.1 grid_3.5.1        backports_1.1.2  
[10] git2r_0.23.0      magrittr_1.5      evaluate_0.12    
[13] stringi_1.3.1     whisker_0.3-2     R.oo_1.22.0      
[16] R.utils_2.7.0     rmarkdown_1.10    tools_3.5.1      
[19] stringr_1.4.0     yaml_2.2.0        compiler_3.5.1   
[22] htmltools_0.3.6   knitr_1.20       

This reproducible R Markdown analysis was created with workflowr 1.1.1