if (FALSE) {
library(BSgenome.Hsapiens.UCSC.hg38)
## -- Basic usage: tile chr1 with 200 bp windows, 50 bp slide ----------
coords <- make_genomiccoord(
bsgenome = BSgenome.Hsapiens.UCSC.hg38,
chromosomes = "chr1",
window = 200L,
slide = 50L
)
length(coords) # number of windows on chr1
head(coords, 3)
# region1 "chr1:10001-10200:+:BSgenome.Hsapiens.UCSC.hg38:region1"
# region2 "chr1:10051-10250:+:BSgenome.Hsapiens.UCSC.hg38:region2"
# region3 "chr1:10101-10300:+:BSgenome.Hsapiens.UCSC.hg38:region3"
## -- Non-overlapping tiling (slide == window) -------------------------
coords_nonoverlap <- make_genomiccoord(
bsgenome = BSgenome.Hsapiens.UCSC.hg38,
chromosomes = paste0("chr", 1:22),
window = 200L,
slide = 200L # no overlap
)
length(coords_nonoverlap) # ~15 million windows across autosomes
## -- Custom start/end (e.g. a specific sub-region) --------------------
coords_sub <- make_genomiccoord(
bsgenome = BSgenome.Hsapiens.UCSC.hg38,
chromosomes = "chr1",
window = 200L,
slide = 50L,
start = 1000000L,
end = 2000000L
)
length(coords_sub) # 19,981 windows in 1 Mb region
## -- No N-trimming (use full chromosome length) ------------------------
coords_noN <- make_genomiccoord(
bsgenome = BSgenome.Hsapiens.UCSC.hg38,
chromosomes = "chr1",
window = 200L,
slide = 50L,
trim_N = "none"
)
## -- Per-window N-filtering (removes windows with >10% N) -------------
coords_filt <- make_genomiccoord(
bsgenome = BSgenome.Hsapiens.UCSC.hg38,
chromosomes = "chr1",
window = 200L,
slide = 50L,
trim_N = "filter",
max_N_frac = 0.10
)
## -- Get data.frame output for GRanges construction -------------------
df <- make_genomiccoord(
bsgenome = BSgenome.Hsapiens.UCSC.hg38,
chromosomes = "chr1",
window = 200L,
slide = 50L,
as_vector = FALSE
)
gr <- GenomicRanges::GRanges(
seqnames = df$chr,
ranges = IRanges::IRanges(start = df$win_start, end = df$win_end),
strand = df$strand
)
## -- Pass directly to tm_nn -------------------------------------------
coords <- make_genomiccoord(
bsgenome = BSgenome.Hsapiens.UCSC.hg38,
chromosomes = "chr1",
window = 200L,
slide = 200L,
start = 1000000L,
end = 1010000L
)
tm_results <- tm_nn(coords, Na = 50)
}
Run the code above in your browser using DataLab