Skip to content

Commit

Permalink
Support for PNG output
Browse files Browse the repository at this point in the history
  • Loading branch information
alephnull7 committed Feb 21, 2024
1 parent 0863972 commit 7c948d1
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 16 deletions.
20 changes: 11 additions & 9 deletions R/PACVr.R
Original file line number Diff line number Diff line change
Expand Up @@ -38,22 +38,24 @@ PACVr.visualizeWithRCircos <- function(gbkData,
coverage,
analysisSpecs,
plotSpecs) {
if (plotSpecs$isOutput) {
logger::log_info('Generating a visualization of the sequencing coverage')
vizDoneSub <- "(including coverage)"
pdf(plotSpecs$output, width=10, height=10)
} else {
logger::log_info('No coverage data inferred; generating empty visualization')
vizDoneSub <- "(excluding coverage)"
logger::log_info('Generating a visualization of the sequencing coverage')
isOutput <- plotSpecs$isOutput

if (isOutput) {
createVizFile(plotSpecs)
}

visualizeWithRCircos(
gbkData,
coverage,
analysisSpecs,
plotSpecs
)
dev.off()
logger::log_info('Visualization {vizDoneSub} saved as `{plotSpecs$output}`')

if (isOutput) {
dev.off()
logger::log_info('Visualization saved as `{plotSpecs$output}`')
}
}

#' @title Execute the complete pipeline of \pkg{PACVr}
Expand Down
6 changes: 4 additions & 2 deletions R/helpers.R
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,16 @@ getPlotSpecs <- function(logScale,
relative,
textSize,
output) {
outputFields <- getOutputFields(output)
plotSpecs <- list(
logScale = filterLogical(logScale),
threshold = filterPosNumeric(threshold),
relative = filterLogical(relative),
textSize = filterPosNumeric(textSize),
output = getOutput(output)
output = outputFields$output,
outputType = outputFields$outputType,
isOutput = outputFields$isOutput
)
plotSpecs$isOutput <- !is.null(plotSpecs$output)
return(plotSpecs)
}

Expand Down
47 changes: 42 additions & 5 deletions R/visualizeWithRCircos.R
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ visualizeWithRCircos <- function(gbkData,
plotIRLinks(gbkData$linkData,
analysisSpecs$syntenyLineType)
}

# STEP 6. GENERATE TITLE AND LEGEND
logger::log_info(' Generating title and legend for visualization')
graphics::title(paste(gbkData$plotTitle), line = -4.5, cex.main = 0.8)
Expand Down Expand Up @@ -209,10 +209,47 @@ getLegendParams <- function(coverage,
return(legendParams)
}

getOutput <- function(output) {
if (is.character(output) && grepl("\\.pdf$", output, ignore.case = TRUE)) {
return(output)
getOutputFields <- function(output) {
outputTypes <- paste(getOutputTypes(), collapse = "|")
outputPattern <- sprintf("^(?:.+\\.)(%s)$", outputTypes)
outputMatch <- regexec(outputPattern, output, ignore.case = TRUE)
outputVec <- regmatches(output, outputMatch)[[1]]

if (length(outputVec) == 0) {
output <- NULL
outputType <- NULL
isOutput <- FALSE
} else {
return(NULL)
output <- outputVec[1]
outputType <- tolower(outputVec[2])
isOutput <- TRUE
}

outputFields <- list(
output = output,
outputType = outputType,
isOutput = isOutput
)
return(outputFields)
}

createVizFile <- function(plotSpecs) {
output <- plotSpecs$output
outputType <- plotSpecs$outputType

if (outputType == "pdf") {
pdf(output,
width=10,
height=10)
} else if (outputType == "png") {
png(output,
width=480,
height=480)
}
}

getOutputTypes <- function() {
outputTypes <- c("pdf",
"png")
return(outputTypes)
}

0 comments on commit 7c948d1

Please sign in to comment.