Updated read counts to give information about aligment percent, and adapter percent.
[htsworkflow.git] / htswanalysis / scripts / CollectLibraries.pm
1 #!/usr/bin/perl -w
2
3 use strict;
4 use warnings;
5
6 my %libraries;
7
8 for my $filename (@ARGV) {
9   chomp $filename;
10
11   my $base_file = `basename $filename`;
12   chomp $base_file;
13   $base_file =~ /^(\d+)_(.+?)_s(\d+)_.+?([Ss][Ll]\d+)\.align_.*/;
14   my($date,$flowcell,$lanes,$lib) = ($1,$2,$3,$4);
15
16   open(COUNT,$filename.".count");
17   <COUNT>;
18   my $count_line = <COUNT>; chomp $count_line; my($all,$pf,$adapt,$align) = split(/\t/,$count_line);
19   if(!defined($align)) { print STDERR $filename," is badly formatted.\n"; }
20   close(COUNT);
21
22   if(!defined($lib)) {
23     print STDERR "MISSING LIB: ", $filename,"\n"; 
24     next;
25   }
26
27   if(!exists($libraries{$lib})) { my @a; $libraries{$lib} = \@a; }
28   push @{$libraries{$lib}}, "$flowcell\t$lanes\t$filename\t$all\t$pf\t$adapt\t$align\t$date";
29 }
30
31   print "<?xml version=\"1.0\" ?>\n";
32   print "<Libraries>\n";
33
34   for my $lib (sort {$a =~ /[sS][lL](\d+)/; my $a1 = $1; $b =~ /[sS][lL](\d+)/; my $b1 = $1; $a1 <=> $b1} keys %libraries) {
35     print "<Library Name=\"$lib\">\n";
36     for my $data (@{$libraries{$lib}}) {
37       my($f,$l,$fn,$all,$pf,$adapt,$align,$D) = split(/\t/,$data);
38       print "<Track Flowcell=\"$f\" Lane=\"$l\" Filename=\"$fn\" All=\"$all\" Pf=\"$pf\" Adapter=\"$adapt\" Align=\"$align\" Date=\"$D\" />\n";
39     }
40     print "</Library>\n";
41   }
42
43   print "</Libraries>\n";
44