src/utils/qa/compareTableToFile.csh 1.2
1.2 2009/04/27 16:43:59 ann
if the file is of type wiggle, then call checkWigFiles script
Index: src/utils/qa/compareTableToFile.csh
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/utils/qa/compareTableToFile.csh,v
retrieving revision 1.1
retrieving revision 1.2
diff -b -B -U 1000000 -r1.1 -r1.2
--- src/utils/qa/compareTableToFile.csh 24 Apr 2009 22:44:57 -0000 1.1
+++ src/utils/qa/compareTableToFile.csh 27 Apr 2009 16:43:59 -0000 1.2
@@ -1,81 +1,97 @@
#!/bin/tcsh
source `which qaConfig.csh`
################################
#
# 04-23-2009
# Ann Zweig
#
# This script is to be used to check files against their corresponding table.
# It accepts a table name that has a file associated with it. It makes sure
# that the file corresponds correctly with its table by comparing total count
# as well as size (sum(chromEnd-chromStart)).
#
################################
set db=""
set table=""
set file=""
+set wig="F"
set verb="F"
# usage statement
-if ( $#argv < 3 || $#argv > 4 ) then
+if ( $#argv < 3 || $#argv > 5 ) then
echo
echo " Ensures that a table correlates with its associated file."
echo " Only prints results if there is a diff between table and file."
echo " Works for these file types: narrowPeak, broadPeak, gappedPeak,"
echo " bedGraph, NRE, BiP, gcf"
- echo " (for wiggle files use: checkWigFiles.csh)"
+ echo " For wiggle files, you must specify [wig] parameter."
echo
- echo " usage: database tableName fileName [verbose]"
+ echo " usage: database tableName fileName [wig] [verbose]"
echo " fileName includes path of download file "
echo " e.g. /goldenPath/<db>/fileName.gz"
echo
echo " use verbose for more details"
echo
exit
endif
set db=$argv[1]
set table=$argv[2]
set file=$argv[3]
-if ( $#argv == 4 ) then
+if ( 5 == $#argv ) then
+ set wig="T"
set verb="T"
endif
+if ( 4 == $#argv ) then
+ if ( "wig" == $argv[4] ) then
+ set wig="T"
+ else
+ set verb="T"
+ endif
+endif
+
if ( "$HOST" != "hgwdev" ) then
echo "\nERROR: this script must be run from hgwdev."
exit 1
endif
if ( ! -e $file ) then
echo " \nERROR: sorry I can't find the original file here: ~$file\n"
exit 1
endif
+# if this is a wiggle file, call checkWigFiles script
+if ( "T" == $wig ) then
+ checkWigFiles.csh $db $table $file rm
+ exit 0
+endif
+
# get count and size (sum(chromEnd-chromStart))from $file
set numF=`zcat $file | egrep -v "track" | gawk '{++n} END {print n}'`
set sizeF=`zcat $file | gawk '{size+=$3-$2} END {print size}'`
# get count and size (sum(chromEnd-chromStart)) from $table
set numT=`hgsql -Ne "SELECT count(*) FROM $table" $db`
set sizeT=`hgsql -Ne "SELECT sum(chromEnd-chromStart) FROM $table" $db`
# compare output counts and sizes
if ( $numF != $numT ) then
echo "\nDIFFERENCES! file count = $numF, table count = $numT\n"
endif
if ( $sizeF != $sizeT ) then
echo "\nDIFFERENCES! file size = $sizeF, table size = $sizeT\n"
endif
if ( $verb == "T" ) then
echo "\ncount for file: $numF"
echo "count for table: $numT"
echo
echo "(sum(chromEnd-chromStart)) for file: $sizeF"
echo "(sum(chromEnd-chromStart)) for table: $sizeT\n"
endif
exit 0