App-Rangeops
view release on metacpan or search on metacpan
lib/App/Rangeops/Command/clean.pm view on Meta::CPAN
334335336337338339340341342343344345346347348349350351352353354
$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
107108109110111112113114115116117118119120121122123124125126127my
$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.629 second using v1.01-cache-2.11-cpan-e9199f4ba4c )