App-Rangeops
view release on metacpan or search on metacpan
lib/App/Rangeops/Command/clean.pm view on Meta::CPAN
$info_of->{$r0}{chr} eq $info_of->{$r1}{chr} ? ($_) : ()
} @lines;
for my $line (@same_pair_lines) {
my ( $range0, $range1 ) = split /\t/, $line;
my $intspan0 = $info_of->{$range0}{intspan};
my $intspan1 = $info_of->{$range1}{intspan};
my $intspan_i = $intspan0->intersect($intspan1);
if ( $intspan_i->is_not_empty ) {
if ( $intspan_i->size / $intspan0->size > 0.5
and $intspan_i->size / $intspan1->size > 0.5 )
{
@lines = grep { $_ ne $line } @lines;
}
}
}
}
#----------------------------#
lib/App/Rangeops/Command/merge.pm view on Meta::CPAN
my $range_i = $ranges[$i];
printf STDERR " " x 4 . "Range %d / %d\t%s\n", $i, $#ranges,
$range_i
if $opt->{verbose};
my $set_i = $info_of->{$range_i}{intspan};
for my $j ( $i + 1 .. $#ranges ) {
my $range_j = $ranges[$j];
my $set_j = $info_of->{$range_j}{intspan};
my $i_set = $set_i->intersect($set_j);
if ( $i_set->is_not_empty ) {
my $coverage_i = $i_set->size / $set_i->size;
my $coverage_j = $i_set->size / $set_j->size;
if ( $coverage_i >= $opt->{coverage}
and $coverage_j >= $opt->{coverage} )
{
push @edges, [ $ranges[$i], $ranges[$j] ];
printf STDERR " " x 8
. "Merge with Range %d / %d\t%s\n",
$j, $#ranges, $range_j
if $opt->{verbose};
( run in 0.257 second using v1.01-cache-2.11-cpan-e9199f4ba4c )