# NOT RUN {
##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
function (wigfile, chrBed, chrom, chrstart, chrend, m_win)
{
all_wig = load_all_wig(wigfile)
all_wig = all_wig[all_wig$chr == chrom, ]
all_wig[, 2] = as.numeric(all_wig[, 2])
all_wig[, 3] = as.numeric(all_wig[, 3])
m_result = data.frame(chrom = character(0), start = numeric(0),
end = numeric(0), wig_value = numeric(0), stringsAsFactors = FALSE)
dim_bed = dim(chrBed)[1]
m_result[1:dim_bed, 1:3] = chrBed[, 1:3]
if (chrend > 0) {
all_wig = all_wig[which(all_wig[, 3] < chrend), ]
}
if (chrstart > 0) {
all_wig[, 2] = all_wig[, 2] - chrstart
all_wig[, 3] = all_wig[, 3] - chrstart
all_wig = all_wig[which(all_wig[, 2] >= 0), ]
}
for (i in 1:dim_bed) {
tmp_bed_wig = which(all_wig[, 2] >= chrBed[i, 2] - m_win)
tmp_bed_wig = tmp_bed_wig[which(all_wig[tmp_bed_wig,
3] <= chrBed[i, 3] + m_win)]
m_result[i, 4] = mean(as.numeric(all_wig[tmp_bed_wig,
4]))
}
return(m_result)
}
# }
Run the code above in your browser using DataLab