if (++$pos_count != $current[2]) {
for my $pos ($pos_count .. $current[2]-1) {
print join("\t", $current[1], $pos, '','', '1'), "\n";
}
}
####
if (++$pos_count != $current[2]) {
fill_interval($pos_count, @current);
}
####
sub fill_interval {
my ($pos_count, @current) = @_;
my $margin = 8;
if ($current[2] - $pos_count <= 2*$margin) {
for my $pos ($pos_count .. $current[2]-1) {
print join("\t", $current[1], $pos, '','', '1'), "\n";
}
}
else {
my @bool;
my ($start, $end) = ($pos_count, $current[2]-1);
for my $i (0..$margin-1) {
@bool[ $start + $i, $end - $i ] = (1,1);
}
for my $pos ($pos_count .. $current[2]-1) {
print join("\t", $current[1], $pos, '','', $bool[$pos] || 0), "\n";
}
}
}