in reply to Re: Hash_of_Hash_Would do it?
in thread Hash_of_Hash_Would do it?
if (++$pos_count != $current[2]) { for my $pos ($pos_count .. $current[2]-1) { print join("\t", $current[1], $pos, '','', '1'), "\n"; } }
with
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"; } } }
Update: Changed literal values to $margin.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Hash_of_Hash_Would do it?
by sesemin (Beadle) on Sep 18, 2008 at 23:13 UTC |