From 3cd60a0533ab1dd072fa0d9eec2a44df0b3063d4 Mon Sep 17 00:00:00 2001 From: Johannes Nicolaus Wibisana Date: Wed, 24 Jul 2024 16:58:26 +0900 Subject: [PATCH 1/2] add fasta support for load_genomic_breaks() function --- R/load_genomic_breaks.R | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/R/load_genomic_breaks.R b/R/load_genomic_breaks.R index 4413524..97f689e 100644 --- a/R/load_genomic_breaks.R +++ b/R/load_genomic_breaks.R @@ -18,8 +18,8 @@ #' #' @param file Path to a file in GFF3 or MAF format. The file can be compressed #' with _gzip_. -#' @param target_bsgenome A `BSgenome` object representing the _target_ genome. -#' @param query_bsgenome A `BSgenome` object representing the _query_ genome. +#' @param target_bsgenome A `BSgenome` object or path to a FASTA file representing the _target_ genome. +#' @param query_bsgenome A `BSgenome` object or path to a FASTA file representing the _query_ genome. #' @param sort Returns the object sorted, ignoring strand information. #' @param type In GFF3 files, _Sequence Ontology_ term representing an alignment #' block (default: `match_part`). @@ -78,17 +78,29 @@ load_genomic_breaks_GFF <- function ( type = "match_part") { gb <- import.gff3(file) - if (! is.null(target_bsgenome)) - gb <- GRanges(gb, seqinfo = seqinfo(target_bsgenome)) + if (!is.null(target_bsgenome)) { + if (is.character(target_bsgenome)) { + target_seqinfo <- seqinfo(readDNAStringSet(target_bsgenome)) + } else { + target_seqinfo <- seqinfo(target_bsgenome) + } + gb <- GRanges(gb, seqinfo = target_seqinfo) + } # Discard cross_genome_match parent (used for block display in Zenbu) gb <- gb[gb$type == type] # Discard unused information gb$phase <- gb$Parent <- gb$Target <- gb$ID <- gb$source <- gb$type <- NULL # Convert query coordinates to GRanges - if (! is.null(query_bsgenome)) - gb$query <- GRanges(gb$Name, seqinfo = seqinfo(query_bsgenome)) - else + if (!is.null(query_bsgenome)) { + if (is.character(query_bsgenome)) { + query_seqinfo <- Seqinfo(readDNAStringSet(query_bsgenome)) + } else { + query_seqinfo <- seqinfo(query_bsgenome) + } + gb$query <- GRanges(gb$Name, seqinfo = query_seqinfo) + } else { gb$query <- GRanges(gb$Name) + } gb$Name <- NULL if (sort) gb <- sort(gb, ignore.strand = TRUE) as(gb, "GBreaks") From eb9370b3b4bf67526911cf30bd9a03d4bc53c044 Mon Sep 17 00:00:00 2001 From: Johannes Nicolaus Wibisana Date: Thu, 25 Jul 2024 09:24:57 +0900 Subject: [PATCH 2/2] fix typo --- R/load_genomic_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/load_genomic_breaks.R b/R/load_genomic_breaks.R index 97f689e..775dde0 100644 --- a/R/load_genomic_breaks.R +++ b/R/load_genomic_breaks.R @@ -93,7 +93,7 @@ load_genomic_breaks_GFF <- function ( # Convert query coordinates to GRanges if (!is.null(query_bsgenome)) { if (is.character(query_bsgenome)) { - query_seqinfo <- Seqinfo(readDNAStringSet(query_bsgenome)) + query_seqinfo <- seqinfo(readDNAStringSet(query_bsgenome)) } else { query_seqinfo <- seqinfo(query_bsgenome) }