X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bp_bin%2Fmate_pair_dist;h=0475f7d275a5fda9cf3b4a07e81ac1bce07d0d34;hb=ddbb577ec991c2a466b6c1230cc241f649753f09;hp=d6526799e16200f8b0bc052ff47971fe3db05b72;hpb=ca0e3f34fa91f527961dcbbf2a0827385af9a6ce;p=biopieces.git diff --git a/bp_bin/mate_pair_dist b/bp_bin/mate_pair_dist index d652679..0475f7d 100755 --- a/bp_bin/mate_pair_dist +++ b/bp_bin/mate_pair_dist @@ -52,16 +52,19 @@ while ( $record = Maasha::Biopieces::get_record( $in ) ) { ( $q_id, $mate ) = split "/", $record->{ 'Q_ID' }, 2; - if ( $mate == 2 ) + if ( $mate ) { - if ( $record->{ 'STRAND' } eq '+' ) { - $record->{ 'STRAND' } = '-'; - } else { - $record->{ 'STRAND' } = '+'; + if ( $mate == 2 ) + { + if ( $record->{ 'STRAND' } eq '+' ) { + $record->{ 'STRAND' } = '-'; + } else { + $record->{ 'STRAND' } = '+'; + } } - } - push @{ $data{ $record->{ 'S_ID' } }{ $record->{ 'STRAND' } }{ $q_id }{ $mate } }, $record; + push @{ $data{ $record->{ 'S_ID' } }{ $record->{ 'STRAND' } }{ $q_id }{ $mate } }, $record; + } } Maasha::Biopieces::put_record( $record, $out ); @@ -89,9 +92,16 @@ foreach $contig ( keys %data ) foreach $mate2 ( @mates2 ) { $new_record = { - S_ID => $contig, - Q_ID1 => $mate1->{ 'Q_ID' }, - Q_ID2 => $mate2->{ 'Q_ID' }, + S_ID => $contig, + Q_ID1 => $mate1->{ 'Q_ID' }, + Q_ID2 => $mate2->{ 'Q_ID' }, + S_BEG1 => $mate1->{ 'S_BEG' }, + S_BEG2 => $mate2->{ 'S_BEG' }, + S_END1 => $mate1->{ 'S_END' }, + S_END2 => $mate2->{ 'S_END' }, + SEQ_LEN1 => $mate1->{ 'SEQ_LEN' }, + SEQ_LEN2 => $mate2->{ 'SEQ_LEN' }, + STRAND => $mate1->{ 'STRAND' }, DIST => abs( $mate2->{ 'S_BEG' } - $mate1->{ 'S_BEG' } ), }; @@ -125,41 +135,3 @@ END __END__ - - -@records = sort { $a->{ 'S_ID' } cmp $b->{ 'S_ID' } or - $a->{ 'STRAND' } cmp $b->{ 'STRAND' } or - $a->{ 'Q_ID' } cmp $b->{ 'Q_ID' } or - $a->{ 'S_BEG' } <=> $b->{ 'S_BEG' } } @records; - -print STDERR "done.\n" if $options->{ 'verbose' }; - -# map { print join( "\t", $_->{ 'S_ID' }, $_->{ 'STRAND' }, $_->{ 'Q_ID' }, $_->{ 'S_BEG' } ), "\n" } @records; # DEBUG -print Dumper( \@records ); - -$i = 0; - -while ( $i < @records - 1 ) -{ - $j = $i + 1; - - while ( $j < @records and - $records[ $i ]->{ 'S_ID' } eq $records[ $j ]->{ 'S_ID' } and - $records[ $i ]->{ 'STRAND' } eq $records[ $j ]->{ 'STRAND' } - ) - { - ( $id1, $mate1 ) = split "/", $records[ $i ]->{ 'Q_ID' }, 2; - ( $id2, $mate2 ) = split "/", $records[ $j ]->{ 'Q_ID' }, 2; - - print Dumper( $i, $j, $id1, $mate1, $id1, $mate2 ); - - if ( $id1 eq $id2 and $mate1 == 1 and $mate2 == 2 ) - { - print "Dist: " . ( $records[ $j ]->{ 'S_BEG' } - $records[ $i ]->{ 'S_BEG' } ) . "\n"; - } - - $j++; - } - - $i = $j; -}