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 41 42 43 44 45 46 47 48 49 50 51
|
#!/usr/bin/env perl
use strict;
use warnings;
use lib ("/usr/lib/trinityrnaseq/PerlLib");
use Fastq_reader;
my $usage = "\n\nusage: $0 interleaved.fq [left_output_filename.fq right_output_filename.fq]\n\n";
my $interleaved_fq = $ARGV[0] or die $usage;
my $left_out_filename = $ARGV[1] || "unweaved.left.$$.fq";
my $right_out_filename = $ARGV[2] || "unweaved.right.$$.fq";
main: {
my $fastq_reader = new Fastq_reader($interleaved_fq);
open (my $left_ofh, ">$left_out_filename") or die "Error, cannot write to $left_out_filename";
open (my $right_ofh, ">$right_out_filename") or die "Error, cannot write to $right_out_filename";
while (my $fq = $fastq_reader->next()) {
my $read_name = $fq->get_full_read_name();
my $record = $fq->get_fastq_record();
if ($read_name =~ m|/1$|) {
print $left_ofh $record;
}
elsif ($read_name =~ m|/2$|) {
print $right_ofh $record;
}
else {
die "Error, cannot decipher left or right read from name: $read_name";
}
}
close $left_ofh;
close $right_ofh;
print "Done.\n";
exit(0);
}
|