Mercurial > repos > p.lucas > get_coverage_graph
view graph_coverage_multi_png.R @ 1:7bcef9bf4f18 draft default tip
Uploaded wrapper
| author | p.lucas |
|---|---|
| date | Thu, 13 Jun 2024 08:32:27 +0000 |
| parents | 5558479694c7 |
| children |
line wrap: on
line source
## draw coverage depth graphics for n references ## if n <= 8: return png ## if n > 8: return pdf args = commandArgs(trailingOnly=TRUE) library("reshape") library("ggplot2") library("gridExtra") # Load some extensions to have multiplot pdf library("stringr") # To replace characters in strings cov_file = args[1] output = args[2] coverage = read.table(cov_file,sep="\t", header=FALSE) coverage = rename(coverage,c(V1="Chr", V2="locus",V3="depth")) headers = unique(coverage$Chr) ## round sup(length(each different ref)) / 8 ## nb_pages = ceiling(length(headers) / 8) nb_pages = floor(length(headers) / 8) print("nb_images:") print(nb_pages) output_p = '' ## ------------------------------------------------------- ## plot each page (i more than 1 page) if(nb_pages > 0){ for(n in 1:nb_pages-1){ print(n) ## start with 0 ## creates output file if(n == 0){ output_p <- output }else{ output_p <- str_replace(output, ".png", paste0("_", n ,".png") ) } png(output_p) print(paste0("output file:", output_p)) header_start_index = n*8 +1 header_end_index = header_start_index + 7 treated_headers = headers[header_start_index:header_end_index] coverage_eight_headers <- coverage[coverage$Chr %in% treated_headers,] print("header_start_index:") print(header_start_index) print("header_end_index:") print(header_end_index) print("treated_headers:") print(treated_headers) maxlocus = max( coverage_eight_headers$locus ) # # maxdepth = max( coverage_eight_headers$depth ) print("maxlocus:") print(maxlocus) print(paste0(output_p," file will be created")) plot8cov <- ggplot(coverage_eight_headers, aes(x=locus, y=depth )) + geom_line(color="red", size=1) + facet_wrap(~coverage_eight_headers$Chr, scales="free", ncol=2, nrow=4) + scale_x_continuous(expand = c(0, 0), limits = c(0, NA)) print(plot8cov) dev.off() print(paste0(output_p," file created")) } } ## creates output file if(nb_pages == 0){ output_p <- output }else{ output_p <- str_replace(output, ".png", paste0("_", nb_pages ,".png") ) } png(output_p) nb_elem_last_page = length(headers) %% 8 if(nb_elem_last_page > 0){ header_start_index = length(headers)-nb_elem_last_page+1 header_end_index = length(headers) treated_headers = headers[header_start_index:header_end_index] print("treated_headers:") print(treated_headers) coverage_last_headers= coverage[coverage$Chr %in% treated_headers,] print("header_start_index:") print(header_start_index) print("header_end_index:") print(header_end_index) print("treated_headers:") print(treated_headers) maxlocus = max( coverage_last_headers$locus ) ## maxdepth = pmax( coverage_last_headers$depth ) print("maxlocus:") print(maxlocus) print(paste0(output_p," file will be created")) plot8cov <- ggplot(coverage_last_headers, aes(x=locus, y=depth )) + geom_line(color="red", size=1) + facet_wrap(~coverage_last_headers$Chr, scales="free", ncol=2, nrow=4) + scale_x_continuous(expand = c(0, 0), limits = c(0, NA)) print(plot8cov) dev.off() print(paste0(output_p," file created")) } ##-------------------------------------------------------
