Hi,
The below is my Dmrcate run and I do get the DMRS. but how to get the CPGids that are part of these DMRS
corfit <- duplicateCorrelation(myMs, design=designMatrix, block = biolrep)
dmrCate.<-cpg.annotate("array", myMs, what="M", arraytype = "EPIC", analysis.type="differential", design=designMatrix, coef=2, block=biolrep, correlation=corfit$consensus.correlation,fdr=0.01)
dmrcoutput_all <- dmrcate(dmrCate,lambda=500, C=5, pcutoff="fdr",min.cpgs=1,mc.cores=1)
wgbs.ranges_all.snp7 <- extractRanges(dmrcoutput_all, genome = "hg19")
write.csv (wgbs.ranges_all.snp7,file="DMRCate_DifferentailRange.txt")
write.csv(dmrcoutput_all.snp7$results,file="DMRCate_ALL.txt")
how to get the 17 Cpgids from the result shown below
"","seqnames","start","end","width","strand","no.cpgs","minfdr","Stouffer","maxbetafc","meanbetafc","overlapping.promoters"
"1","chr6",31539539,31540750,1212,"*",17,2.06654851019045e-120,2.16758469969414e-149,-0.162022961391297,-0.106211449278892,"LTA-001, LTA-002, LTA-004, LTA-003"
I tried with gRanges but unable to understand how to perform it
P.S: I have posted the same in Bioconductor Forum. sorry for redundancy. Any help soon is appriciated
2 answers
gr <- granges(OBJECT)
locs.ranges<-names(gr[seqnames(gr) == "chr6" & start(gr)>=31539539 & end(gr) <=31540750 ])
The above two lines I was able to subset the ids belonging to 1 location of interest. How can I loop this multiple locations present in a dataframe?
There would be multiple ways(more efficient way ) to what do than the below script which I have used solve my own problem.
But It would be great to know If there is any efficient way to do the same.
OBJECT <- is the last object from which beta/mvalue for DMRCate is give as input
gr <- granges(OBJECT)
mydata<-read.csv(file="DMRCate_Output.csv",header=TRUE,stringsAsFactors = FALSE)
for(n in 1:nrow(mydata))
{
chr<-mydata2[n,2]
start=mydata2[n,3]
end=mydata2[n,4]
infos<-names(gr[seqnames(gr) == chr & start(gr)>=start & end(gr) <=end ])
allcpg<-toString(infos)
mydata$cpgids<-allcpg
}
write.table(mydata,file="DMRCate_Model3_DifferentailRange_V3V4_withCpgids",sep="\t");
P.S: Here the output from DMRcate is written to a file
Log in to answer this question.