|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- suppressPackageStartupMessages(library("optparse"))
- suppressPackageStartupMessages(library("stats"))
-
- # specify our desired options in a list
- # by default OptionParser will add an help option equivalent to
- # make_option(c("-h", "--help"), action="store_true", default=FALSE,
- # help="Show this help message and exit")
-
- option_list <- list(
- make_option(c("-p", "--prefix"), type="character",default="./",
- help="The output files prefix [default ./]"),
- make_option(c("-i", "--input"),type="character", default=NULL,
- help="The directory of input EPIC files. required!")
- )
-
- # get command line options, if help option encountered print help and exit,
- # otherwise if options not found on command line then set defaults,
- opt <- parse_args(OptionParser(option_list=option_list))
-
- # load libraries
-
- library("minfi")
- library("IlluminaHumanMethylationEPICmanifest")
- library("IlluminaHumanMethylationEPICanno.ilm10b4.hg19")
-
- ## 1. data import
- targets <- read.metharray.sheet(opt$input)
- rgSet <- read.metharray.exp(targets = targets)
- targets$ID <- paste(targets$Sample_Group,targets$Sample_Name,sep=".")
- sampleNames(rgSet) <- targets$ID
- #phenoData <- pData(rgSet)
- message("data import:finished")
-
- ## 2. Quality control
- # 2.1 qc report by minfi
- # qcReport(rgSet, sampNames=targets$ID, sampGroups=targets$Sample_Group,pdf="qcReport.pdf")
-
- # 2.2 data filtering
- # get detected p value
- # a. remove samples with average p value less than 0.05
- detP <- detectionP(rgSet)
- message("calculate p value:finished")
-
- # raw
- mSetRaw <- preprocessRaw(rgSet)
- raw_mVals <- getM(mSetRaw)
- raw_bVals <- getBeta(mSetRaw)
- message("m value and beta value output:finished")
-
- # normalization
- MSet.noob <- preprocessNoob(rgSet)
- RSet <- ratioConvert(MSet.noob, what = "both", keepCN = TRUE)
- bVals <- getBeta(RSet)
- mVals <- getM(RSet)
-
- # write output
- message("saving R data")
- rdata_filename = paste(opt$prefix, '.RData',sep="")
- save(rgSet, targets, detP, file = rdata_filename)
- message("writing raw table")
- m_raw_filename = paste(opt$prefix,'.raw.mVal.txt',sep="")
- write.table(raw_mVals,m_raw_filename,col.names = T,row.names = T,sep="\t",quote=F)
- b_raw_filename = paste(opt$prefix,'.raw.bVal.txt',sep="")
- write.table(raw_bVals,b_raw_filename,col.names = T,row.names = T,sep="\t",quote=F)
- message("writing filtered table")
- m_filename = paste(opt$prefix,'.ssnoob.mVal.txt',sep="")
- write.table(mVals,m_filename,col.names = T,row.names = T,sep="\t",quote=F)
- b_filename = paste(opt$prefix,'.ssnoob.bVal.txt',sep="")
- write.table(bVals,b_filename,col.names = T,row.names = T,sep="\t",quote=F)
|