in reply to Re^6: Data munging
in thread Data munging

Slightly different ordering, but same data:

#! perl -slw use strict; my %ref; open REF, '<', 'ref.txt' or die $!; while( <REF> ) { chomp; my @cols = split ' '; push @{ $ref{ $cols[0] } }, [ @cols[ 1, 2 ] ]; } close REF; open QUERY, '<', 'query.txt' or die $!; while( <QUERY> ) { chomp; my @cols = split ' '; my $overlaps = 0; for my $ref ( @{ $ref{ $cols[ 0 ] } } ) { my( $sRef, $eRef ) = @$ref; next if $cols[ 1 ] > $eRef or $cols[ 2 ] < $sRef; ++$overlaps; } print join "\t", @cols[ 0 .. 2 ], $overlaps, @cols[ 3 .. $#cols ]; } close QUERY; __END__ c:\test>819005 c1 100 12000 4 + AT c1 19800 20000 1 - AG c1 20049 20800 0 - GC c9 10078 14008 1 - AG c11 10078 14008 0 - TG c15 10078 14008 0 - TC c9 1078 10008 1 - TA c10 10080 10000 0 - TT

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"I'd rather go naked than blow up my ass"