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

1.219 2010/03/29 20:32:38 braney
add support for BAM download only
Index: src/hg/encode/encodeValidate/doEncodeValidate.pl
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/encode/encodeValidate/doEncodeValidate.pl,v
retrieving revision 1.218
retrieving revision 1.219
diff -b -B -U 4 -r1.218 -r1.219
--- src/hg/encode/encodeValidate/doEncodeValidate.pl	24 Mar 2010 21:39:03 -0000	1.218
+++ src/hg/encode/encodeValidate/doEncodeValidate.pl	29 Mar 2010 20:32:38 -0000	1.219
@@ -290,8 +290,9 @@
     psl  => \&validatePsl,
     BAM => \&validateBAM,
     cBiP => \&validateFreepass,  # TODO: this is a dodge, because bed file is for different species, so chrom violations
     bigWig => \&validateBigWig,
+    bam => \&validateBam,
     );
 
 my $floatRegEx = "[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?";
 # my $floatRegEx = "[+-]?(?:\\.\\d+|\\d+(?:\\.\\d+|[eE]{1}?[+-]{1}?\\d+))";  # Tim's attempt
@@ -746,8 +747,25 @@
     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 -chromDb=$daf->{assembly} $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 validateBigWig
 {
     my ($path, $file, $type) = @_;
     doTime("beginning validateBigWig") if $opt_timing;