src/hg/encode/encodeValidate/doEncodeValidate.pl 1.206

1.206 2009/12/09 19:32:59 braney
add support for SAM and BAM files (call validateFiles)
Index: src/hg/encode/encodeValidate/doEncodeValidate.pl
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/encode/encodeValidate/doEncodeValidate.pl,v
retrieving revision 1.205
retrieving revision 1.206
diff -b -B -U 4 -r1.205 -r1.206
--- src/hg/encode/encodeValidate/doEncodeValidate.pl	5 Dec 2009 00:21:24 -0000	1.205
+++ src/hg/encode/encodeValidate/doEncodeValidate.pl	9 Dec 2009 19:32:59 -0000	1.206
@@ -354,8 +354,10 @@
     rpkm  => \&validateRpkm,
     fasta  => \&validateFasta,
     bowtie  => \&validateBowtie,
     psl  => \&validatePsl,
+    SAM => \&validateSAM,
+    BAM => \&validateBAM,
     cBiP => \&validateFreepass,  # TODO: this is a dodge, because bed file is for different species, so chrom violations
     );
 
 my $floatRegEx = "[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?";
@@ -794,8 +796,42 @@
     doTime("done validateCsfasta") if $opt_timing;
     return ();
 }
 
+sub validateSAM
+{
+    my ($path, $file, $type) = @_;
+    doTime("beginning validateSAM") if $opt_timing;
+    HgAutomate::verbose(2, "validateSAM($path,$file,$type)\n");
+    my $paramList = validationSettings("validateFiles","SAM");
+    my $safe = SafePipe->new(CMDS => ["validateFiles $quickOpt $paramList -type=SAM $file"]);
+    if(my $err = $safe->exec()) {
+	print STDERR  "ERROR: failed validateSAM : " . $safe->stderr() . "\n";
+	# don't show end-user pipe error(s)
+	return("failed validateSAM for '$file'");
+    }
+    HgAutomate::verbose(2, "File \'$file\' passed $type validation\n");
+    doTime("done validateSAM") if $opt_timing;
+    return ();
+}
+
+sub validateBAM
+{
+    my ($path, $file, $type) = @_;
+    doTime("beginning validateBAM") if $opt_timing;
+    HgAutomate::verbose(2, "validateBAM($path,$file,$type)\n");
+    my $paramList = validationSettings("validateFiles","BAM");
+    my $safe = SafePipe->new(CMDS => ["validateFiles $quickOpt $paramList -type=BAM $file"]);
+    if(my $err = $safe->exec()) {
+	print STDERR  "ERROR: failed validateBAM : " . $safe->stderr() . "\n";
+	# don't show end-user pipe error(s)
+	return("failed validateBAM for '$file'");
+    }
+    HgAutomate::verbose(2, "File \'$file\' passed $type validation\n");
+    doTime("done validateBAM") if $opt_timing;
+    return ();
+}
+
 sub validateCsqual
 {
     # Syntax per http://marketing.appliedbiosystems.com/mk/submit/SOLID_KNOWLEDGE_RD?_JS=T&rd=dm
     # Sample:-