1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
#!/usr/bin/env perl
use strict;
use lib ("/usr/lib/trinityrnaseq/PerlLib");
use SAM_reader;
use SAM_entry;
my $usage = "usage: $0 file.sam\n\n";
my $sam_file = $ARGV[0] or die $usage;
main: {
my $sam_reader = new SAM_reader($sam_file);
my $filtered_count = 0;
my $total_count = 0;
while ($sam_reader->has_next()) {
my $sam_entry = $sam_reader->get_next();
$total_count++;
if (! $sam_entry->is_proper_pair()) {
$filtered_count++;
}
else {
print $sam_entry->toString() . "\n";
}
}
print STDERR "-filtered $filtered_count of $total_count indiv read alignments as not proper pairs = " . sprintf("%.2f", $filtered_count / $total_count * 100) . "\% of alignments\n";
exit(0);
}
|