886a096d97b3edc9c7245ed8c564373aa286bcd8 kuhn Tue Mar 5 13:52:47 2013 -0800 at hiram's suggestion, adding -ef flag to first line. he says it'll hard-quit on an error, but I haven't found any difference in what it does. diff --git src/utils/qa/makeCytoBandIdeo.csh src/utils/qa/makeCytoBandIdeo.csh index d0c4fea..af45525 100755 --- src/utils/qa/makeCytoBandIdeo.csh +++ src/utils/qa/makeCytoBandIdeo.csh @@ -1,101 +1,101 @@ -#!/bin/tcsh +#!/bin/tcsh -ef source `which qaConfig.csh` set db="" set sql=~/kent/src/hg/lib/cytoBandIdeo.sql if ( $#argv == 0 || $#argv > 2 ) then # no command line args echo echo " make a cytoBandIdeo table for navigation if no real cytology available." echo " checks for existing cytoBandIdeo table and optionally overwrites." echo " note: the script may break on load step if chromNames are too long." echo echo " usage: database [overwrite]" echo exit else set db=$argv[1] endif if ( $#argv == 2 ) then if ( $argv[2] == "overwrite" ) then hgsql -e "DROP TABLE cytoBandIdeo" $db else echo echo 'second argument must be "overwrite"' echo 'which will overwrite existing cytoBandIdeo table' echo exit endif endif if ( `hgsql -N -e "SHOW TABLES LIKE 'cytoBandIdeo'" $db` == "cytoBandIdeo" ) then set ideoCount=`hgsql -N -e "SELECT COUNT(*) FROM cytoBandIdeo" $db` echo echo "$db cytoBandIdeo table has $ideoCount rows" echo 'run program with "overwrite" argument to continue' $0 exit endif # get chroms and sizes hgsql -N -e 'SELECT chrom, size FROM chromInfo' $db > $db.chroms # find all chromnames with centromeres and the cen coords hgsql -N -e 'SELECT chrom, chromStart, chromEnd FROM gap WHERE type = "centromere"' $db \ | sort > $db.cens file $db.cens | grep empty > /dev/null if ( $status ) then # process cens # get the names only cat $db.cens | awk '{print $1}' > $db.cenNames # process cens into pieces rm -f $db.splitChroms foreach cenchrom (`cat $db.cenNames`) set pEnd=`cat $db.cens | grep -w $cenchrom | awk '{print $2}'` set qStart=`cat $db.cens | grep -w $cenchrom | awk '{print $3}'` set qEnd=`cat $db.chroms | grep -w $cenchrom | awk '{print $2}'` # make pArm if ( $pEnd != 0 ) then # no pArm if acrocentric echo $cenchrom 0 $pEnd p gneg | awk '{print $1"\t"$2"\t"$3"\t"$4"\t"$5}' \ >> $db.splitChroms endif # make qArm if ( $qStart != $qEnd ) then # no qArm if acrocentric (yes, it happens: see ornAna1 chrX2) echo $cenchrom $qStart $qEnd q gneg | awk '{print $1"\t"$2"\t"$3"\t"$4"\t"$5}' \ >> $db.splitChroms endif # split the centromere into halves for making triangles in ideogram set cen1start=$pEnd set cen2end=$qStart @ censize = $cen2end - $cen1start @ cen1end = $cen1start + $censize / 2 @ cen2start = $cen1end echo $cenchrom $cen1start $cen1end cen acen | awk '{print $1"\t"$2"\t"$3"\t"$4"\t"$5}' \ >> $db.splitChroms echo $cenchrom $cen2start $cen2end cen acen | awk '{print $1"\t"$2"\t"$3"\t"$4"\t"$5}' \ >> $db.splitChroms end cat $db.splitChroms > $db.cytoBand # remove cen chroms from full list of chroms and format for cytoBandIdeo table cat $db.chroms | grep -w -v -f $db.cenNames | sort > $db.chromsNoCens cat $db.chromsNoCens | awk '{print $1"\t"0"\t"$2"\t""\t""gneg"}' >> $db.cytoBand else cat $db.chroms | awk '{print $1"\t"0"\t"$2"\t""\t""gneg"}' > $db.cytoBand endif bedSort $db.cytoBand $db.cytoBand hgLoadSqlTab $db cytoBandIdeo $sql $db.cytoBand if ( $status ) then set char=`hgsql -N -e "SELECT MAX(LENGTH(chrom)) FROM chromInfo" $db` echo echo "Load failed. Possibly due to long chrom names." echo "Edit kent/src/hg/lib/cytoBandIdeo.sql to increase chrom KEY size:" grep PRIMARY ~/kent/src/hg/lib/cytoBandIdeo.sql grep UNIQUE ~/kent/src/hg/lib/cytoBandIdeo.sql echo "Your longest chromName is $char long" echo endif