From 5de0ce3fd2b85eef50b3540d208043cfd4b2125f Mon Sep 17 00:00:00 2001 From: yixuan-chen-elisa Date: Wed, 3 Apr 2024 17:09:06 -0400 Subject: [PATCH 1/4] fix read.modkit --- DESCRIPTION | 2 +- R/read.modkit.R | 103 +++++++++--------- inst/extdata/modkit/Hypo1.first50Bed.txt | 50 +++++++++ .../chr22.HG002.top1000.other_mod.bed.gz | Bin 14191 -> 0 bytes man/read.modkit.Rd | 14 +-- tests/testthat/test_read.modkit.R | 17 ++- 6 files changed, 123 insertions(+), 63 deletions(-) create mode 100644 inst/extdata/modkit/Hypo1.first50Bed.txt delete mode 100644 inst/extdata/modkit/chr22.HG002.top1000.other_mod.bed.gz diff --git a/DESCRIPTION b/DESCRIPTION index 5c8b76f..661c5f2 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: bsseq -Version: 1.39.3 +Version: 1.39.2 Encoding: UTF-8 Title: Analyze, manage and store whole-genome methylation data Description: A collection of tools for analyzing and visualizing whole-genome diff --git a/R/read.modkit.R b/R/read.modkit.R index 6a3f46e..d4f6af2 100644 --- a/R/read.modkit.R +++ b/R/read.modkit.R @@ -3,7 +3,7 @@ read.modkit <- function(files, rmZeroCov = FALSE, strandCollapse = TRUE){ gr_list <- list() - sampleNames <- sub("\\.bed$", "", basename(files)) + sampleNames <- sub("\\.bed.gz$", "", basename(files)) if (!is.null(colData)){ rownames(colData) <- sampleNames } @@ -11,68 +11,67 @@ read.modkit <- function(files, for (i in seq_along(files)){ data <- read.table(files[i], header = FALSE, sep="\t", stringsAsFactors=FALSE, quote="") - gr <- GRanges(seqnames = data$V1, - ranges = IRanges(start = data$V2+1, end = data$V3)) - mcols(gr)$m <- data$V12 - mcols(gr)$cov <- data$V12 + data$V13 - mcols(gr)$filter <- data$V16 - if (any(data$V14 != 0)){ - mcols(gr)$other_mod <- data$V14 - mcols(gr)$cov_other_mod <- data$V14 + data$V13 - } + + if (length(unique(data$V4)) == 2){ + gr <- GRanges(seqnames = data[data$V4 == "m", ]$V1, + ranges = IRanges(start = data[data$V4 == "m", ]$V2+1, + end = data[data$V4 == "m", ]$V3)) + + mcols(gr)$m <- data[data$V4 == "m", ]$V12 + mcols(gr)$h <- data[data$V4 != "m", ]$V12 + mcols(gr)$u <- data[data$V4 == "m", ]$V13 + mcols(gr)$filter <- data[data$V4 == "m", ]$V16 + }else{ + gr <- GRanges(seqnames = data$V1, + ranges = IRanges(start = data$V2+1, end = data$V3)) + + mcols(gr)$m <- data$V12 + mcols(gr)$u <- data$V13 + mcols(gr)$filter <- data$V16 + } + names(gr) <- sampleNames[i] gr_list[[sampleNames[i]]] <- gr } overlap_gr <- Reduce(subsetByOverlaps, gr_list) - m_cov_list <- lapply(gr_list, function(gr){ + m_u_list <- lapply(gr_list, function(gr){ overlap_data <- gr[gr %over% overlap_gr] - if (!is.null(gr$other_mod)) { - data.frame(m = overlap_data$m, cov = overlap_data$cov, - filter = overlap_data$filter, - other_mod = overlap_data$other_mod, - cov_other_mod = overlap_data$cov_other_mod) + if (!is.null(gr$h)) { + data.frame(m = overlap_data$m, u = overlap_data$u, + h = overlap_data$h, filter = overlap_data$filter) } else { - data.frame(m = overlap_data$m, cov = overlap_data$cov, - filter = overlap_data$filter) + data.frame(m = overlap_data$m, u = overlap_data$u, + filter = overlap_data$filter) } }) - m <- do.call(cbind, lapply(m_cov_list, `[[`, "m")) - cov <- do.call(cbind, lapply(m_cov_list, `[[`, "cov")) - filter <- do.call(cbind, lapply(m_cov_list, `[[`, "filter")) - other_mod <- do.call(cbind, lapply(m_cov_list, `[[`, "other_mod")) - cov_other_mod <- do.call(cbind, lapply(m_cov_list, `[[`, "cov_other_mod")) - - bsseq_objs <- list() - bsseq_obj_m <- BSseq(M = as.matrix(m), Cov = as.matrix(cov), - Filtered = as.matrix(filter), - coef = NULL, se.coef = NULL, - pos = start(overlap_gr), trans = NULL, - parameters = NULL, pData = colData, gr = NULL, - chr = as.vector(seqnames(overlap_gr)), - sampleNames = sampleNames, rmZeroCov = rmZeroCov) + m <- do.call(cbind, lapply(m_u_list, `[[`, "m")) + u <- do.call(cbind, lapply(m_u_list, `[[`, "u")) + h <- do.call(cbind, lapply(m_u_list, `[[`, "h")) + filter <- do.call(cbind, lapply(m_u_list, `[[`, "filter")) - bsseq_objs[[1]] <- bsseq_obj_m - - if (!is.null(other_mod)){ - bsseq_obj_other_mod <- BSseq(M = as.matrix(other_mod), - Cov = as.matrix(cov_other_mod), - Filtered = as.matrix(filter), - coef = NULL, se.coef = NULL, - pos = start(overlap_gr), trans = NULL, - parameters = NULL, pData = colData, gr = NULL, - chr = as.vector(seqnames(overlap_gr)), - sampleNames = sampleNames, rmZeroCov = rmZeroCov) - - bsseq_objs[[2]] <- bsseq_obj_other_mod - } - - if (strandCollapse){ - for (i in seq_along(bsseq_objs)) { - bsseq:::strandCollapse(bsseq_objs[[i]])} - } + if (!is.null(h)){ + bsseq_obj <- BSseq(M = as.matrix(m + h), + Cov = as.matrix(m + u + h), + Filtered = as.matrix(filter), + coef = NULL, se.coef = NULL, + pos = start(overlap_gr), trans = NULL, + parameters = NULL, pData = colData, gr = NULL, + chr = as.vector(seqnames(overlap_gr)), + sampleNames = sampleNames, rmZeroCov = rmZeroCov) + if (strandCollapse) {strandCollapse(bsseq_obj)} + }else{ + bsseq_obj <- BSseq(M = as.matrix(m), Cov = as.matrix(u + m), + Filtered = as.matrix(filter), + coef = NULL, se.coef = NULL, + pos = start(overlap_gr), trans = NULL, + parameters = NULL, pData = colData, gr = NULL, + chr = as.vector(seqnames(overlap_gr)), + sampleNames = sampleNames, rmZeroCov = rmZeroCov) + if (strandCollapse) {strandCollapse(bsseq_obj)} + } - return(bsseq_objs) + return(bsseq_obj) } diff --git a/inst/extdata/modkit/Hypo1.first50Bed.txt b/inst/extdata/modkit/Hypo1.first50Bed.txt new file mode 100644 index 0000000..024905b --- /dev/null +++ b/inst/extdata/modkit/Hypo1.first50Bed.txt @@ -0,0 +1,50 @@ +chr1 3000826 3000827 h 28 . 3000826 3000827 255,0,0 28 0.00 0 26 2 1 0 0 1 +chr1 3000826 3000827 m 28 . 3000826 3000827 255,0,0 28 7.14 2 26 0 1 0 0 1 +chr1 3001006 3001007 h 27 . 3001006 3001007 255,0,0 27 0.00 0 27 0 0 1 1 1 +chr1 3001006 3001007 m 27 . 3001006 3001007 255,0,0 27 0.00 0 27 0 0 1 1 1 +chr1 3001017 3001018 h 25 . 3001017 3001018 255,0,0 25 0.00 0 25 0 1 3 1 0 +chr1 3001017 3001018 m 25 . 3001017 3001018 255,0,0 25 0.00 0 25 0 1 3 1 0 +chr1 3001276 3001277 h 24 . 3001276 3001277 255,0,0 24 0.00 0 24 0 1 0 1 2 +chr1 3001276 3001277 m 24 . 3001276 3001277 255,0,0 24 0.00 0 24 0 1 0 1 2 +chr1 3001628 3001629 h 25 . 3001628 3001629 255,0,0 25 0.00 0 25 0 0 0 0 1 +chr1 3001628 3001629 m 25 . 3001628 3001629 255,0,0 25 0.00 0 25 0 0 0 0 1 +chr1 3003225 3003226 h 24 . 3003225 3003226 255,0,0 24 4.17 1 12 11 1 5 0 0 +chr1 3003225 3003226 m 24 . 3003225 3003226 255,0,0 24 45.83 11 12 1 1 5 0 0 +chr1 3003338 3003339 h 30 . 3003338 3003339 255,0,0 30 3.33 1 7 22 0 3 0 0 +chr1 3003338 3003339 m 30 . 3003338 3003339 255,0,0 30 73.33 22 7 1 0 3 0 0 +chr1 3003378 3003379 h 31 . 3003378 3003379 255,0,0 31 0.00 0 18 13 0 0 1 2 +chr1 3003378 3003379 m 31 . 3003378 3003379 255,0,0 31 41.94 13 18 0 0 0 1 2 +chr1 3003581 3003582 h 30 . 3003581 3003582 255,0,0 30 0.00 0 24 6 0 3 1 2 +chr1 3003581 3003582 m 30 . 3003581 3003582 255,0,0 30 20.00 6 24 0 0 3 1 2 +chr1 3003639 3003640 h 4 . 3003639 3003640 255,0,0 4 0.00 0 4 0 8 19 0 6 +chr1 3003639 3003640 m 4 . 3003639 3003640 255,0,0 4 0.00 0 4 0 8 19 0 6 +chr1 3003720 3003721 h 32 . 3003720 3003721 255,0,0 32 0.00 0 24 8 0 0 1 4 +chr1 3003720 3003721 m 32 . 3003720 3003721 255,0,0 32 25.00 8 24 0 0 0 1 4 +chr1 3003884 3003885 h 36 . 3003884 3003885 255,0,0 36 0.00 0 21 15 0 2 0 0 +chr1 3003884 3003885 m 36 . 3003884 3003885 255,0,0 36 41.67 15 21 0 0 2 0 0 +chr1 3003897 3003898 h 27 . 3003897 3003898 255,0,0 27 0.00 0 13 14 0 9 1 1 +chr1 3003897 3003898 m 27 . 3003897 3003898 255,0,0 27 51.85 14 13 0 0 9 1 1 +chr1 3004529 3004530 h 35 . 3004529 3004530 255,0,0 35 0.00 0 35 0 1 0 1 1 +chr1 3004529 3004530 m 35 . 3004529 3004530 255,0,0 35 0.00 0 35 0 1 0 1 1 +chr1 3005997 3005998 h 46 . 3005997 3005998 255,0,0 46 0.00 0 46 0 0 1 0 1 +chr1 3005997 3005998 m 46 . 3005997 3005998 255,0,0 46 0.00 0 46 0 0 1 0 1 +chr1 3006186 3006187 h 51 . 3006186 3006187 255,0,0 51 0.00 0 48 3 0 0 0 2 +chr1 3006186 3006187 m 51 . 3006186 3006187 255,0,0 51 5.88 3 48 0 0 0 0 2 +chr1 3006415 3006416 h 48 . 3006415 3006416 255,0,0 48 0.00 0 37 11 0 1 0 1 +chr1 3006415 3006416 m 48 . 3006415 3006416 255,0,0 48 22.92 11 37 0 0 1 0 1 +chr1 3006781 3006782 h 48 . 3006781 3006782 255,0,0 48 0.00 0 39 9 0 0 1 0 +chr1 3006781 3006782 m 48 . 3006781 3006782 255,0,0 48 18.75 9 39 0 0 0 1 0 +chr1 3006880 3006881 h 40 . 3006880 3006881 255,0,0 40 0.00 0 40 0 3 0 4 1 +chr1 3006880 3006881 m 40 . 3006880 3006881 255,0,0 40 0.00 0 40 0 3 0 4 1 +chr1 3007169 3007170 h 41 . 3007169 3007170 255,0,0 41 0.00 0 36 5 0 1 1 2 +chr1 3007169 3007170 m 41 . 3007169 3007170 255,0,0 41 12.20 5 36 0 0 1 1 2 +chr1 3007429 3007430 h 43 . 3007429 3007430 255,0,0 43 0.00 0 29 14 0 2 0 0 +chr1 3007429 3007430 m 43 . 3007429 3007430 255,0,0 43 32.56 14 29 0 0 2 0 0 +chr1 3007531 3007532 h 40 . 3007531 3007532 255,0,0 40 0.00 0 40 0 3 0 1 3 +chr1 3007531 3007532 m 40 . 3007531 3007532 255,0,0 40 0.00 0 40 0 3 0 1 3 +chr1 3007579 3007580 h 43 . 3007579 3007580 255,0,0 43 0.00 0 43 0 0 0 0 5 +chr1 3007579 3007580 m 43 . 3007579 3007580 255,0,0 43 0.00 0 43 0 0 0 0 5 +chr1 3007681 3007682 h 44 . 3007681 3007682 255,0,0 44 0.00 0 44 0 0 0 3 5 +chr1 3007681 3007682 m 44 . 3007681 3007682 255,0,0 44 0.00 0 44 0 0 0 3 5 +chr1 3008544 3008545 h 47 . 3008544 3008545 255,0,0 47 0.00 0 44 3 0 1 3 2 +chr1 3008544 3008545 m 47 . 3008544 3008545 255,0,0 47 6.38 3 44 0 0 1 3 2 \ No newline at end of file diff --git a/inst/extdata/modkit/chr22.HG002.top1000.other_mod.bed.gz b/inst/extdata/modkit/chr22.HG002.top1000.other_mod.bed.gz deleted file mode 100644 index de25e2330db6ff4029d41f53347507ffadf1203b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14191 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 KV;vFzqW=L;p`mR6 diff --git a/man/read.modkit.Rd b/man/read.modkit.Rd index c4e14e9..58a0538 100644 --- a/man/read.modkit.Rd +++ b/man/read.modkit.Rd @@ -32,15 +32,15 @@ are converted to bedMethyl (BED) files using \href{https://github.com/nanoporete Modkit outputs modified reads, unmodified reads, ambiguous modification reads (reads where the probability was below the threshold and usually failing the lowest 10th percentile), and other modified reads.} \subsection{modkit to Bsseq object}{ - After creating BED files using modkit, the BED files are read in and the Bsseq object is constructed via \code{read.modkit()} function. The function reads in BED files, extract genomic regions, methylation, coverage, ambiguous modification status data and sample information and then construct Bsseq object using \code{BSseq} function within the package. If there are other modified reads, two Bsseq objects are constructed with the first one using major modified reads and their corresponding coverage and the second one using the other modified reads and their corresponding coverage.} + After creating BED files using modkit, the BED files are read in and the Bsseq object is constructed via \code{read.modkit()} function. The function reads in BED files, extract genomic regions, methylation, coverage, ambiguous modification status data and sample information and then construct Bsseq object using \code{BSseq} function within the package. Other modification bases such as hydroxymethylation are extracted and added to the methylation matrix when present.} } \examples{ -# only one modification and one BSseq object is constructed. -files <- c(system.file("extdata/modkit/chr22.HG002.top1000.bed.gz", package = "bsseq")) -bsseq_nano <- bsseq::read.modkit(files, rmZeroCov = FALSE, strandCollapse=FALSE) +# No other modification present +files <- c(system.file("extdata/modkit/chr21.chr22.HG002.top1000.bed.gz", package = "bsseq")) +bsseq_nano <- read.modkit(files, rmZeroCov = FALSE, strandCollapse=FALSE) -# there is other modification, so two BSseq objects are constructed. -files <- c(system.file("extdata/modkit/chr22.HG002.top1000.other_mod.bed.gz",package = "bsseq")) -bsseq_nano <- bsseq::read.modkit(files, rmZeroCov = FALSE, strandCollapse=FALSE) +# Other modification present +files <- c(system.file("extdata/modkit/Hypo1.first50Bed.txt",package = "bsseq")) +bsseq_nano <- read.modkit(files, rmZeroCov = FALSE, strandCollapse=FALSE) } diff --git a/tests/testthat/test_read.modkit.R b/tests/testthat/test_read.modkit.R index af67251..5de00ef 100644 --- a/tests/testthat/test_read.modkit.R +++ b/tests/testthat/test_read.modkit.R @@ -1,13 +1,24 @@ context("read.modkit") # TODO: Re-factor read.modkit() and update tests accordingly -test_that("read.modkit() works for BED files", { - infile <- system.file("extdata", "modkit/chr22.HG002.top1000.other_mod.bed.gz", +test_that("read.modkit() works for BED files without 5hmc", { + infile <- system.file("extdata", "modkit/chr21.chr22.HG002.top1000.other_mod.bed.gz", package = "bsseq") bsseq <- read.modkit(files = infile, colData = NULL, rmZeroCov = FALSE, strandCollapse = TRUE) - + + lapply(bsseq, function(x) {expect_is(x, "BSseq")}) +}) + +test_that("read.modkit() works for BED files with 5hmc", { + infile <- system.file("extdata", "modkit/Hypo1.first40Bed.txt", + package = "bsseq") + bsseq <- read.modkit(files = infile, + colData = NULL, + rmZeroCov = FALSE, + strandCollapse = TRUE) + lapply(bsseq, function(x) {expect_is(x, "BSseq")}) }) From 6d82b4e28a4cd7f4e558b0fc7b354e0a56af131a Mon Sep 17 00:00:00 2001 From: yixuanchen <116841407+yixuan-chen-elisa@users.noreply.github.com> Date: Wed, 3 Apr 2024 22:07:46 -0400 Subject: [PATCH 2/4] Add files via upload --- .../modkit/chr21.chr22.HG002.top1000.bed.gz | Bin 0 -> 18161 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 inst/extdata/modkit/chr21.chr22.HG002.top1000.bed.gz diff --git a/inst/extdata/modkit/chr21.chr22.HG002.top1000.bed.gz b/inst/extdata/modkit/chr21.chr22.HG002.top1000.bed.gz new file mode 100644 index 0000000000000000000000000000000000000000..af77aa3d4de0c3be8b8d92e4001985827c6a7f98 GIT binary patch literal 18161 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 z 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 literal 0 HcmV?d00001 From c7d1993a8bcaeb625500c5a5fd51334b761b14c3 Mon Sep 17 00:00:00 2001 From: yixuanchen <116841407+yixuan-chen-elisa@users.noreply.github.com> Date: Wed, 3 Apr 2024 22:08:26 -0400 Subject: [PATCH 3/4] Delete inst/extdata/modkit/chr22.HG002.top1000.bed.gz --- inst/extdata/modkit/chr22.HG002.top1000.bed.gz | Bin 14038 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 inst/extdata/modkit/chr22.HG002.top1000.bed.gz diff --git a/inst/extdata/modkit/chr22.HG002.top1000.bed.gz b/inst/extdata/modkit/chr22.HG002.top1000.bed.gz deleted file mode 100644 index c803fd6803c5889071370f127c1361044055dec3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14038 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 DUxbiJ From edf2866eb2f3b6cdb4e9619530aeddac397a8ae6 Mon Sep 17 00:00:00 2001 From: yixuanchen <116841407+yixuan-chen-elisa@users.noreply.github.com> Date: Wed, 3 Apr 2024 22:10:13 -0400 Subject: [PATCH 4/4] Update test_read.modkit.R --- tests/testthat/test_read.modkit.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/testthat/test_read.modkit.R b/tests/testthat/test_read.modkit.R index 5de00ef..e68f750 100644 --- a/tests/testthat/test_read.modkit.R +++ b/tests/testthat/test_read.modkit.R @@ -2,23 +2,23 @@ context("read.modkit") # TODO: Re-factor read.modkit() and update tests accordingly test_that("read.modkit() works for BED files without 5hmc", { - infile <- system.file("extdata", "modkit/chr21.chr22.HG002.top1000.other_mod.bed.gz", + infile <- system.file("extdata", "modkit/chr21.chr22.HG002.top1000.bed.gz", package = "bsseq") bsseq <- read.modkit(files = infile, colData = NULL, rmZeroCov = FALSE, strandCollapse = TRUE) - lapply(bsseq, function(x) {expect_is(x, "BSseq")}) + expect_is(bsseq, "BSseq") }) test_that("read.modkit() works for BED files with 5hmc", { - infile <- system.file("extdata", "modkit/Hypo1.first40Bed.txt", + infile <- system.file("extdata", "modkit/Hypo1.first50Bed.txt", package = "bsseq") bsseq <- read.modkit(files = infile, colData = NULL, rmZeroCov = FALSE, strandCollapse = TRUE) - lapply(bsseq, function(x) {expect_is(x, "BSseq")}) + expect_is(bsseq, "BSseq") })