@@ -1343,14 +1343,35 @@ runRdTest<-function(bed)
13431343 # #Plot JPG##
13441344 if (opt $ plot == TRUE ) {
13451345 if (opt $ padding > 0 ) {
1346- orig_start <- start
1347- orig_end <- end
1348- orig_length <- as.numeric(orig_end ) - as.numeric(orig_start )
1349- padded_start <- floor(as.numeric(orig_start ) - opt $ padding * orig_length )
1350- padded_end <- ceiling(as.numeric(orig_end ) + opt $ padding * orig_length )
1351- padded_cnv_matrix <- loadData(chr , padded_start , padded_end , cnvID , sampleIDs , coveragepath , medianfile , bins )
1352- plotJPG(genotype_matrix , padded_cnv_matrix , chr , padded_start , padded_end , cnvID , sampleIDs , outputname , cnvtype ,
1353- plotK = FALSE , plotfamily = FALSE , famfile , outFolder , pad = opt $ padding , orig_start = orig_start , orig_end = orig_end )
1346+ event_coords_for_padding_orig_start <- start
1347+ event_coords_for_padding_orig_end <- end
1348+ event_length <- as.numeric(event_coords_for_padding_orig_end ) - as.numeric(event_coords_for_padding_orig_start )
1349+ padded_region_start <- floor(as.numeric(event_coords_for_padding_orig_start ) - opt $ padding * event_length )
1350+ padded_region_end <- ceiling(as.numeric(event_coords_for_padding_orig_end ) + opt $ padding * event_length )
1351+
1352+ # Track whether padding was successful
1353+ plot_padded_successfully <- FALSE
1354+ if (padded_region_start < padded_region_end && padded_region_start > = 0 ) {
1355+ padded_cnv_matrix_candidate <- loadData(chr , padded_region_start , padded_region_end , cnvID , sampleIDs , coveragepath , medianfile , bins )
1356+ if (! (is.character(padded_cnv_matrix_candidate ) && length(padded_cnv_matrix_candidate ) == 1 && padded_cnv_matrix_candidate [1 ] == " Failure" ) ) {
1357+ if (is.matrix(padded_cnv_matrix_candidate ) && ncol(padded_cnv_matrix_candidate ) > 0 ) {
1358+ plotJPG(genotype_matrix , padded_cnv_matrix_candidate , chr , padded_region_start , padded_region_end , cnvID , sampleIDs , outputname , cnvtype ,
1359+ plotK = FALSE , plotfamily = FALSE , famfile , outFolder ,
1360+ pad = opt $ padding , orig_start = event_coords_for_padding_orig_start , orig_end = event_coords_for_padding_orig_end )
1361+ plot_padded_successfully <- TRUE
1362+ }
1363+ } else {
1364+ warning(paste(" Failed to load data for padded region for CNV ID:" , cnvID , " at" , chr , " :" , padded_region_start , " -" , padded_region_end , " . Plotting without padding." ))
1365+ }
1366+ } else {
1367+ warning(paste(" Invalid padded interval for CNV ID:" , cnvID , " at" , chr , " :" , event_coords_for_padding_orig_start , " -" , event_coords_for_padding_orig_end , " is invalid (" , padded_region_start , " -" , padded_region_end , " ). Plotting without padding." ))
1368+ }
1369+
1370+ # If plotting with padding was not successful, fall back to original plot
1371+ if (! plot_padded_successfully ) {
1372+ plotJPG(genotype_matrix , cnv_matrix , chr , event_coords_for_padding_orig_start , event_coords_for_padding_orig_end , cnvID , sampleIDs , outputname , cnvtype ,
1373+ plotK = FALSE , plotfamily = FALSE , famfile , outFolder )
1374+ }
13541375 } else {
13551376 plotJPG(genotype_matrix , cnv_matrix , chr , start , end , cnvID , sampleIDs , outputname , cnvtype ,
13561377 plotK = FALSE , plotfamily = FALSE , famfile , outFolder )
0 commit comments