You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
2.1KB

  1. suppressPackageStartupMessages(library("optparse"))
  2. suppressPackageStartupMessages(library("stats"))
  3. # specify our desired options in a list
  4. # by default OptionParser will add an help option equivalent to
  5. # make_option(c("-h", "--help"), action="store_true", default=FALSE,
  6. # help="Show this help message and exit")
  7. option_list <- list(
  8. make_option(c("-p", "--prefix"), type="character",default="./",
  9. help="The output files prefix [default ./]"),
  10. make_option(c("-i", "--input"),type="character", default=NULL,
  11. help="The directory of input EPIC files. required!")
  12. )
  13. # get command line options, if help option encountered print help and exit,
  14. # otherwise if options not found on command line then set defaults,
  15. opt <- parse_args(OptionParser(option_list=option_list))
  16. # load libraries
  17. library("minfi")
  18. library("IlluminaHumanMethylationEPICmanifest")
  19. library("IlluminaHumanMethylationEPICanno.ilm10b4.hg19")
  20. ## 1. data import
  21. targets <- read.metharray.sheet(opt$input)
  22. rgSet <- read.metharray.exp(targets = targets)
  23. targets$ID <- paste(targets$Sample_Group,targets$Sample_Name,sep=".")
  24. sampleNames(rgSet) <- targets$ID
  25. #phenoData <- pData(rgSet)
  26. message("data import:finished")
  27. ## 2. Quality control
  28. # 2.1 qc report by minfi
  29. # qcReport(rgSet, sampNames=targets$ID, sampGroups=targets$Sample_Group,pdf="qcReport.pdf")
  30. # 2.2 data filtering
  31. # get detected p value
  32. # a. remove samples with average p value less than 0.05
  33. detP <- detectionP(rgSet)
  34. message("calculate p value:finished")
  35. # raw
  36. mSetRaw <- preprocessRaw(rgSet)
  37. raw_mVals <- getM(mSetRaw)
  38. raw_bVals <- getBeta(mSetRaw)
  39. message("m value and beta value output:finished")
  40. # write output
  41. message("saving R data")
  42. rdata_filename = paste(opt$prefix, '.RData',sep="")
  43. save(rgSet, targets, detP, file = rdata_filename)
  44. message("writing raw table")
  45. m_raw_filename = paste(opt$prefix,'.raw.mVal.txt',sep="")
  46. write.table(raw_mVals,m_raw_filename,col.names = T,row.names = T,sep="\t",quote=F)
  47. b_raw_filename = paste(opt$prefix,'.raw.bVal.txt',sep="")
  48. write.table(raw_bVals,b_raw_filename,col.names = T,row.names = T,sep="\t",quote=F)