Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# sigminer 1.0.7

- Fixed potential problem raised by unordered copy number segments ([#217](https://github.com/ShixiangWang/sigminer/issues/217)).
- Fixed a typo, correct `MRSE` to `RMSE`.
- Added feature in `show_sig_bootstrap_*()` for plotting aggregated values.
- Fixed bug when use `get_groups()` for clustering.
Expand Down
24 changes: 20 additions & 4 deletions R/get.R
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,25 @@
# Get copy number list ----------------------------------------------------

get_cnlist <- function(CopyNumber, ignore_chrs = NULL) {
if (!inherits(CopyNumber, "CopyNumber")) {
stop("Input must be a CopyNumber object!")
if (!inherits(CopyNumber, "CopyNumber") & !data.table::is.data.table(CopyNumber)) {
stop("Input must be a CopyNumber object or a data.table!")
}
if (is.data.frame(CopyNumber)) {
## If it is a data.table
# order by segment start position by each chromosome in each sample
req_cols <- c("chromosome", "start", "end", "segVal", "sample")
data <- data.table::copy(CopyNumber)

if (!all(req_cols %in% colnames(data))) {
stop(paste0(req_cols, collapse = ","), " are necessary columns!")
}

data <- data[, .SD[order(.SD$start, decreasing = FALSE)], by = c("sample", "chromosome")]
all_cols <- colnames(data)
data.table::setcolorder(data, neworder = c(req_cols, setdiff(all_cols, req_cols)))
} else {
data <- data.table::copy(CopyNumber@data)
}
data <- data.table::copy(CopyNumber@data)
if (!is.null(ignore_chrs)) {
chrs_exist <- ignore_chrs %in% unique(data$chromosome)
if (!any(chrs_exist)) {
Expand Down Expand Up @@ -614,6 +629,7 @@ utils::globalVariables(
"i",
"chrom",
"chromosome",
"segVal"
"segVal",
".SD"
)
)
10 changes: 7 additions & 3 deletions R/read_copynumber.R
Original file line number Diff line number Diff line change
Expand Up @@ -347,8 +347,11 @@ read_copynumber <- function(input,
# make sure position is numeric
data_df$start <- as.numeric(data_df$start)
data_df$end <- as.numeric(data_df$end)
# order by sample name
data_df <- data_df[order(data_df$sample)]
# order by segment start position by each chromosome in each sample
data_df <- data_df[, .SD[order(.SD$start, decreasing = FALSE)], by = c("sample", "chromosome")]
all_cols <- colnames(data_df)
data.table::setcolorder(data_df, neworder = c(c("chromosome", "start", "end", "segVal", "sample"),
setdiff(all_cols, c("chromosome", "start", "end", "segVal", "sample"))))

if (join_adj_seg) {
data_df <- helper_join_segments(data_df)
Expand Down Expand Up @@ -396,6 +399,7 @@ utils::globalVariables(
c(
".",
"N",
".N"
".N",
".SD"
)
)
25 changes: 25 additions & 0 deletions inst/test/test_joinCN.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
load(system.file("extdata", "toy_segTab.RData",
package = "sigminer", mustWork = TRUE
))
segTabs = segTabs[rev(1:nrow(segTabs))]
cn2 <- read_copynumber(segTabs,
seg_cols = c("chromosome", "start", "end", "segVal"),
genome_build = "hg19", complement = FALSE, verbose = TRUE, join_adj_seg = FALSE
)

View(cn@data)

debug(sig_tally)
cn_tally_W <- sig_tally(cn, method = "W")

a <- sigminer:::get_cnlist(cn2)
b <- sigminer:::get_cnlist(segTabs)

identical(a, b)
all.equal(a, b)
str(segTabs$chromosome)

head(a$`TCGA-99-7458-01A-11D-2035-01`)
head(b$`TCGA-99-7458-01A-11D-2035-01`)

b <- sigminer:::get_cnlist(segTabs[, -2])
91 changes: 0 additions & 91 deletions inst/test/use_generator.R

This file was deleted.