{
chomp $line;
+ @fields = split /\t/, $line;
-print Dumper( $line );
-
- next if $line =~ /^#/;
-
- @fields = split /\s+/, $line;
-
- $record->{ "REC_TYPE" } = "BLAST";
+ $record->{ "REC_TYPE" } = "SOAP";
$record->{ "Q_ID" } = $fields[ 0 ];
- $record->{ "S_ID" } = $fields[ 1 ];
- $record->{ "IDENT" } = $fields[ 2 ];
- $record->{ "ALIGN_LEN" } = $fields[ 3 ];
- $record->{ "MISMATCHES" } = $fields[ 4 ];
- $record->{ "GAPS" } = $fields[ 5 ];
- $record->{ "Q_BEG" } = $fields[ 6 ] - 1; # BLAST is 1-based
- $record->{ "Q_END" } = $fields[ 7 ] - 1; # BLAST is 1-based
- $record->{ "S_BEG" } = $fields[ 8 ] - 1; # BLAST is 1-based
- $record->{ "S_END" } = $fields[ 9 ] - 1; # BLAST is 1-based
- $record->{ "E_VAL" } = $fields[ 10 ];
- $record->{ "BIT_SCORE" } = $fields[ 11 ];
-
- if ( $record->{ "S_BEG" } > $record->{ "S_END" } )
- {
- $record->{ "STRAND" } = '-';
-
- ( $record->{ "S_BEG" }, $record->{ "S_END" } ) = ( $record->{ "S_END" }, $record->{ "S_BEG" } );
- }
- else
- {
- $record->{ "STRAND" } = '+';
- }
+ $record->{ "SCORE" } = $fields[ 3 ];
+ $record->{ "STRAND" } = $fields[ 6 ];
+ $record->{ "S_ID" } = $fields[ 7 ];
+ $record->{ "S_BEG" } = $fields[ 8 ] - 1; # soap is one based
+ $record->{ "S_END" } = $fields[ 8 ] + $fields[ 5 ] - 2;
put_record( $record, $out );
}
Maasha::UCSC::bed_put_entry( $new_record, $fh, 6 );
}
+ elsif ( $record->{ "REC_TYPE" } eq "SOAP" and $record->{ "S_ID" } =~ /^chr/i ) # ---- Hits from Vmatch ----
+ {
+ $new_record->{ "CHR" } = $record->{ "S_ID" };
+ $new_record->{ "CHR_BEG" } = $record->{ "S_BEG" };
+ $new_record->{ "CHR_END" } = $record->{ "S_END" };
+ $new_record->{ "Q_ID" } = $record->{ "Q_ID" };
+ $new_record->{ "SCORE" } = $record->{ "SCORE" } || 999;
+ $new_record->{ "STRAND" } = $record->{ "STRAND" };
+
+ Maasha::UCSC::bed_put_entry( $new_record, $fh, 6 );
+ }
elsif ( $record->{ "CHR" } and defined $record->{ "CHR_BEG" } and $record->{ "CHR_END" } ) # ---- Generic data from tables ----
{
Maasha::UCSC::bed_put_entry( $record, $fh );