8c084018dedc1241e5220ad9b80f83e957368890 hiram Fri Jun 24 15:27:06 2022 -0700 handle case of empty input file no redmine diff --git src/utils/bedInvert.pl src/utils/bedInvert.pl index 636061f..2e35b68 100755 --- src/utils/bedInvert.pl +++ src/utils/bedInvert.pl @@ -70,26 +70,29 @@ $chromDone{$chr} = 1; printf "%s\t%d\t%d\t%d\n", $chr, $end, $s, $size if ($size > 0); $chr = $c; $start = $s; $end = $e; } } } else { # first chromosome, first element $chr = $c; $start = $s; $end = $e; $size = $start - 0; $chromDone{$chr} = 1; # might be the first gap this new chrom printf "%s\t0\t%d\t%d\n", $chr, $start, $size if ($size > 0); } } # might be final gap on last chrom mentioned +# might be an empty input file, no lines read, never set chr +if (length($chr)) { my $chromEnd = $chromSizes{$chr}; $size = $chromEnd - $end; $chromDone{$chr} = 1; printf "%s\t%d\t%d\t%d\n", $chr, $end, $chromEnd, $size if ($size > 0);; +} close (FH); # output gaps on chroms never mentioned yet, they had no elements foreach $chr (keys %chromSizes) { next if (exists($chromDone{$chr})); printf "%s\t0\t%d\t%d\n", $chr, $chromSizes{$chr}, $chromSizes{$chr}; }