Skip to content

Instantly share code, notes, and snippets.

@xie186
Last active November 1, 2019 02:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xie186/b7ed5bf3b4289ad47fb4f238b994acb6 to your computer and use it in GitHub Desktop.
Save xie186/b7ed5bf3b4289ad47fb4f238b994acb6 to your computer and use it in GitHub Desktop.
GO and KEGG enrichment analysis of gene with ENSEMBL gene IDs
args <- commandArgs();
for(i in 1:length(args)){
if(args[i] == "--input") input <- args[i+1]
if(args[i] == "--output") out <- args[i+1]
if(args[i] == "--figure") fig <- args[i+1]
}
#####################################################
## https://stackoverflow.com/questions/20241065/r-barplot-wrapping-long-text-labels
## There is one possible solution presented by Marc Schwartz in his post to R-help:
## Core wrapping function
wrap.it <- function(x, len){
sapply(x, function(y) paste(strwrap(y, len),
collapse = "\n"),
USE.NAMES = FALSE)
}
# Call this function with a list or vector
wrap.labels <- function(x, len){
if (is.list(x)){
lapply(x, wrap.it, len)
} else {
wrap.it(x, len)
}
}
#########################################################
library(openxlsx)
library(clusterProfiler)
wb <- createWorkbook()
pdf(fig);
cat("R --vanilla --slave --input --output < *R", "\n")
tab <- read.table(input, head=T)
annotation_list = c("GOTERM_BP_DIRECT", "GOTERM_MF_DIRECT", "GOTERM_CC_DIRECT", "KEGG_PATHWAY")
#annotation_list = c("GOTERM_BP_FAT", "GOTERM_CC_FAT", "GOTERM_MF_FAT", "KEGG_PATHWAY")
for(ele in annotation_list){
david = enrichDAVID(gene = tab$gene_id, idType="ENSEMBL_GENE_ID", annotation=ele, david.user="xie186@purdue.edu", pvalueCutoff = 1,qvalueCutoff = 1, pAdjustMethod = "BH")
tab_results = as.data.frame(david)
tab_results_sub = within(tab_results, rm("p.adjust"))
sheet <- addWorksheet(wb, ele)
writeDataTable(wb, sheet, tab_results_sub, colNames = TRUE, rowNames = FALSE, withFilter = FALSE)
freezePane(wb, sheet, firstActiveRow = NULL, firstActiveCol = NULL, firstRow = TRUE, firstCol = FALSE)
setColWidths(wb, sheet,cols =c(1,31:47), widths = "auto")
### draw dotplot
david_sub = david[david$"qvalue"<0.05, asis=T]
david_sub@result$Description=wrap.labels(david_sub$Description, 40)
fig_tem = dotplot(david_sub)
print(fig_tem)
}
saveWorkbook(wb, out, overwrite = TRUE)
dev.off()
sessionInfo()
Rscript scripts/clusterprofiler_enrichDAVID.R --input test.txt --output test.xlsx --figure test.pdf
gene_id
ENSRNOG00000010716
ENSRNOG00000033588
ENSRNOG00000024277
ENSRNOG00000045665
ENSRNOG00000005215
ENSRNOG00000007539
ENSRNOG00000001499
ENSRNOG00000040213
ENSRNOG00000012843
ENSRNOG00000011156
ENSRNOG00000003434
ENSRNOG00000058568
ENSRNOG00000039447
ENSRNOG00000000693
ENSRNOG00000012094
ENSRNOG00000000768
ENSRNOG00000010886
ENSRNOG00000011300
ENSRNOG00000018694
ENSRNOG00000032297
ENSRNOG00000053635
ENSRNOG00000023708
ENSRNOG00000057347
ENSRNOG00000016690
ENSRNOG00000008816
ENSRNOG00000005132
ENSRNOG00000003687
ENSRNOG00000046214
ENSRNOG00000038383
ENSRNOG00000006410
ENSRNOG00000027152
ENSRNOG00000036726
ENSRNOG00000006025
ENSRNOG00000062146
ENSRNOG00000060735
ENSRNOG00000001187
ENSRNOG00000029184
ENSRNOG00000015394
ENSRNOG00000009649
ENSRNOG00000012115
ENSRNOG00000052634
ENSRNOG00000004221
ENSRNOG00000014835
ENSRNOG00000052406
ENSRNOG00000008001
ENSRNOG00000002278
ENSRNOG00000057322
ENSRNOG00000001057
ENSRNOG00000017206
ENSRNOG00000050996
ENSRNOG00000039582
ENSRNOG00000059866
ENSRNOG00000055962
ENSRNOG00000026807
ENSRNOG00000003374
ENSRNOG00000011141
ENSRNOG00000000433
ENSRNOG00000026572
ENSRNOG00000002953
ENSRNOG00000007159
ENSRNOG00000013547
ENSRNOG00000021103
ENSRNOG00000009373
ENSRNOG00000029514
ENSRNOG00000038319
ENSRNOG00000028330
ENSRNOG00000042517
ENSRNOG00000019773
ENSRNOG00000008141
ENSRNOG00000003468
ENSRNOG00000001607
ENSRNOG00000002331
ENSRNOG00000005565
ENSRNOG00000059984
ENSRNOG00000031801
ENSRNOG00000011723
ENSRNOG00000007947
ENSRNOG00000015566
ENSRNOG00000054665
ENSRNOG00000017525
ENSRNOG00000060407
ENSRNOG00000022791
ENSRNOG00000013269
ENSRNOG00000009550
ENSRNOG00000038572
ENSRNOG00000045560
ENSRNOG00000007002
ENSRNOG00000014548
ENSRNOG00000001224
ENSRNOG00000058643
ENSRNOG00000046298
ENSRNOG00000003496
ENSRNOG00000045829
ENSRNOG00000013419
ENSRNOG00000028892
ENSRNOG00000001517
ENSRNOG00000003553
ENSRNOG00000013301
ENSRNOG00000022697
ENSRNOG00000000257
ENSRNOG00000019189
ENSRNOG00000011921
ENSRNOG00000025604
ENSRNOG00000023561
ENSRNOG00000004320
ENSRNOG00000051341
ENSRNOG00000004470
ENSRNOG00000043023
ENSRNOG00000007682
ENSRNOG00000058337
ENSRNOG00000010799
ENSRNOG00000054901
ENSRNOG00000019675
ENSRNOG00000056359
ENSRNOG00000013589
ENSRNOG00000059500
ENSRNOG00000052129
ENSRNOG00000006116
ENSRNOG00000017052
ENSRNOG00000016189
ENSRNOG00000019447
ENSRNOG00000013975
ENSRNOG00000025551
ENSRNOG00000009571
ENSRNOG00000023476
ENSRNOG00000005772
ENSRNOG00000003715
ENSRNOG00000037421
ENSRNOG00000055025
ENSRNOG00000023536
ENSRNOG00000019752
ENSRNOG00000003562
ENSRNOG00000054957
ENSRNOG00000013770
ENSRNOG00000007679
ENSRNOG00000006235
ENSRNOG00000015152
ENSRNOG00000001795
ENSRNOG00000048167
ENSRNOG00000016403
ENSRNOG00000004823
ENSRNOG00000014294
ENSRNOG00000032951
ENSRNOG00000003538
ENSRNOG00000019428
ENSRNOG00000000341
ENSRNOG00000051080
ENSRNOG00000014117
ENSRNOG00000026914
ENSRNOG00000015991
ENSRNOG00000009528
ENSRNOG00000004483
ENSRNOG00000010994
ENSRNOG00000054469
ENSRNOG00000014710
ENSRNOG00000015159
ENSRNOG00000059540
ENSRNOG00000010777
ENSRNOG00000052062
ENSRNOG00000003515
ENSRNOG00000004398
ENSRNOG00000022772
ENSRNOG00000000825
ENSRNOG00000047349
ENSRNOG00000057855
ENSRNOG00000055422
ENSRNOG00000057620
ENSRNOG00000002540
ENSRNOG00000013231
ENSRNOG00000046428
ENSRNOG00000006645
ENSRNOG00000021573
ENSRNOG00000007284
ENSRNOG00000004200
ENSRNOG00000047901
ENSRNOG00000003259
ENSRNOG00000008652
ENSRNOG00000010278
ENSRNOG00000014361
ENSRNOG00000004351
ENSRNOG00000014357
ENSRNOG00000020530
ENSRNOG00000043419
ENSRNOG00000005726
ENSRNOG00000021839
ENSRNOG00000004155
ENSRNOG00000019862
ENSRNOG00000058645
ENSRNOG00000004693
ENSRNOG00000031343
ENSRNOG00000007152
ENSRNOG00000017208
ENSRNOG00000006094
ENSRNOG00000000640
ENSRNOG00000042460
ENSRNOG00000023449
ENSRNOG00000021903
ENSRNOG00000026277
ENSRNOG00000030155
ENSRNOG00000014791
ENSRNOG00000017105
ENSRNOG00000007234
ENSRNOG00000013166
ENSRNOG00000027811
ENSRNOG00000024617
ENSRNOG00000036631
ENSRNOG00000004783
ENSRNOG00000004757
ENSRNOG00000020129
ENSRNOG00000015063
ENSRNOG00000013552
ENSRNOG00000017283
ENSRNOG00000014152
ENSRNOG00000023337
ENSRNOG00000038202
ENSRNOG00000026235
ENSRNOG00000061432
ENSRNOG00000039390
ENSRNOG00000031540
ENSRNOG00000057092
ENSRNOG00000016753
ENSRNOG00000009227
ENSRNOG00000033579
ENSRNOG00000020624
ENSRNOG00000016558
ENSRNOG00000012302
ENSRNOG00000025539
ENSRNOG00000004411
ENSRNOG00000005954
ENSRNOG00000022845
ENSRNOG00000009030
ENSRNOG00000010646
ENSRNOG00000019358
ENSRNOG00000022067
ENSRNOG00000057416
ENSRNOG00000053560
ENSRNOG00000024028
ENSRNOG00000005690
ENSRNOG00000024135
ENSRNOG00000021017
ENSRNOG00000050669
ENSRNOG00000038720
ENSRNOG00000051688
ENSRNOG00000010963
ENSRNOG00000031290
ENSRNOG00000002336
ENSRNOG00000036677
ENSRNOG00000056021
ENSRNOG00000015736
ENSRNOG00000007393
ENSRNOG00000054829
ENSRNOG00000024577
ENSRNOG00000043151
ENSRNOG00000002905
ENSRNOG00000020899
ENSRNOG00000005438
ENSRNOG00000017073
ENSRNOG00000004662
ENSRNOG00000048919
ENSRNOG00000017149
ENSRNOG00000006569
ENSRNOG00000004089
ENSRNOG00000019985
ENSRNOG00000031634
ENSRNOG00000046307
ENSRNOG00000050636
ENSRNOG00000055185
ENSRNOG00000036661
ENSRNOG00000017539
ENSRNOG00000056878
ENSRNOG00000014075
ENSRNOG00000017084
ENSRNOG00000034191
ENSRNOG00000017901
ENSRNOG00000011680
ENSRNOG00000003370
ENSRNOG00000000186
ENSRNOG00000051756
ENSRNOG00000050697
ENSRNOG00000008596
ENSRNOG00000005284
ENSRNOG00000057677
ENSRNOG00000013657
ENSRNOG00000014683
ENSRNOG00000002792
ENSRNOG00000002327
ENSRNOG00000011923
ENSRNOG00000054549
ENSRNOG00000012060
ENSRNOG00000056612
ENSRNOG00000010319
ENSRNOG00000051277
ENSRNOG00000032788
ENSRNOG00000020492
ENSRNOG00000031638
ENSRNOG00000053638
ENSRNOG00000050995
ENSRNOG00000008798
ENSRNOG00000019129
ENSRNOG00000018461
ENSRNOG00000027024
ENSRNOG00000008510
ENSRNOG00000037167
ENSRNOG00000008401
ENSRNOG00000013376
ENSRNOG00000053334
ENSRNOG00000010489
ENSRNOG00000028636
ENSRNOG00000004560
ENSRNOG00000015002
ENSRNOG00000013009
ENSRNOG00000008519
ENSRNOG00000027445
ENSRNOG00000012879
ENSRNOG00000033017
ENSRNOG00000052731
ENSRNOG00000012358
ENSRNOG00000014264
ENSRNOG00000003095
ENSRNOG00000050315
ENSRNOG00000017403
ENSRNOG00000031706
ENSRNOG00000010625
ENSRNOG00000019440
ENSRNOG00000062291
ENSRNOG00000013388
ENSRNOG00000001414
ENSRNOG00000005874
ENSRNOG00000030904
ENSRNOG00000025518
ENSRNOG00000001296
ENSRNOG00000000386
ENSRNOG00000018441
ENSRNOG00000060934
ENSRNOG00000024207
ENSRNOG00000016498
ENSRNOG00000062276
ENSRNOG00000016769
ENSRNOG00000024181
ENSRNOG00000009346
ENSRNOG00000048389
ENSRNOG00000054306
ENSRNOG00000017163
ENSRNOG00000013503
ENSRNOG00000012932
ENSRNOG00000010731
ENSRNOG00000010906
ENSRNOG00000005342
ENSRNOG00000043377
ENSRNOG00000011718
ENSRNOG00000019914
ENSRNOG00000001311
ENSRNOG00000002255
ENSRNOG00000058072
ENSRNOG00000020389
ENSRNOG00000010695
ENSRNOG00000020525
ENSRNOG00000057659
ENSRNOG00000048782
ENSRNOG00000028207
ENSRNOG00000000967
ENSRNOG00000050437
ENSRNOG00000030183
ENSRNOG00000012881
ENSRNOG00000008439
ENSRNOG00000055372
ENSRNOG00000050404
ENSRNOG00000010274
ENSRNOG00000018076
ENSRNOG00000003134
ENSRNOG00000024975
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment