7ec003fc7ae8f5bb327037388ac9ce1031286b01 chmalee Thu Sep 17 12:32:59 2020 -0700 Making lovd long variants a bigBed 9 + so mergeSpannedItems works , refs #25841 diff --git src/hg/utils/otto/lovd/checkAndLoad.sh src/hg/utils/otto/lovd/checkAndLoad.sh index 925ca02..5460b23 100755 --- src/hg/utils/otto/lovd/checkAndLoad.sh +++ src/hg/utils/otto/lovd/checkAndLoad.sh @@ -26,41 +26,42 @@ fi if [ "$new19Cc" -ne "0" ]; then echo LVOD hg19 $today: found rows with not six columns, quitting exit 255 fi for db in hg38 hg19 do if [ ${db} == "hg19" ] then $KENTBIN/bedClip lovd.${db}.bed /cluster/data/${db}/chrom.sizes stdout | sed -e 's/^chrM/chrMT/g' > lovd.${db}.clipped.bed else $KENTBIN/bedClip lovd.${db}.bed /cluster/data/${db}/chrom.sizes lovd.${db}.clipped.bed fi - sort -k1,1 -k2,2n lovd.${db}.clipped.bed | awk '(($3-$2)<50)' > lovd.${db}.short.bed - sort -k1,1 -k2,2n lovd.${db}.clipped.bed | awk '(($3-$2)>=50)' > lovd.${db}.long.bed + sort -k1,1 -k2,2n lovd.${db}.clipped.bed | tawk '(($3-$2)<50)' > lovd.${db}.short.bed + # the long variants turn into bed9+ so that mergeSpannedItems works: + sort -k1,1 -k2,2n lovd.${db}.clipped.bed | tawk '(($3-$2)>=50){print $1,$2,$3,$4,0,".",$2,$3,"0,0,0",$5,$6,$7}' > lovd.${db}.long.bed if [ ${db} == "hg19" ] then echo -e 'chrM\t0\t16571\tCheck chrMT\tPlease look at chrMT, not chrM, for LOVD annotations.\t\t' >> lovd.${db}.short.bed - echo -e 'chrM\t0\t16571\tCheck chrMT\tPlease look at chrMT, not chrM, for LOVD annotations.\t\t' >> lovd.${db}.long.bed + echo -e 'chrM\t0\t16571\tCheck chrMT\t0\t.\t0\t16571\t0,0,0\tPlease look at chrMT, not chrM, for LOVD annotations.\t\t' >> lovd.${db}.long.bed fi sort -k1,1 -k2,2n lovd.${db}.short.bed > lovd.${db}.short.bed.sorted sort -k1,1 -k2,2n lovd.${db}.long.bed > lovd.${db}.long.bed.sorted oldShortLc=`bigBedToBed ../release/${db}/lovd.${db}.short.bb stdout | wc -l` oldLongLc=`bigBedToBed ../release/${db}/lovd.${db}.long.bb stdout | wc -l` newShortLc=`wc -l lovd.${db}.short.bed.sorted | cut -d' ' -f1` newLongLc=`wc -l lovd.${db}.long.bed.sorted | cut -d' ' -f1` echo ${db} short rowcount: old $oldShortLc new: $newShortLc echo ${db} long rowcount: old $oldLongLc new: $newLongLc echo $oldShortLc $newShortLc | awk -v d=${db} '{if (($2-$1)/$1 > 0.1) {printf "validate on %s LOVD short failed: old count: %d, new count: %d\n", d,$1,$2; exit 1;}}' echo $oldLongLc $newLongLc | awk -v d=${db} '{if (($2-$1)/$1 > 0.1) {printf "validate on %s LOVD long failed: old count: %d, new count: %d\n", d,$1,$2; exit 1;}}' - bedToBigBed -type=bed4+3 -tab -as=../lovd.as lovd.${db}.short.bed.sorted /cluster/data/${db}/chrom.sizes lovd.${db}.short.bb - bedToBigBed -type=bed4+3 -tab -as=../lovd.as lovd.${db}.long.bed.sorted /cluster/data/${db}/chrom.sizes lovd.${db}.long.bb + bedToBigBed -type=bed4+3 -tab -as=../lovd.short.as lovd.${db}.short.bed.sorted /cluster/data/${db}/chrom.sizes lovd.${db}.short.bb + bedToBigBed -type=bed9+3 -tab -as=../lovd.long.as lovd.${db}.long.bed.sorted /cluster/data/${db}/chrom.sizes lovd.${db}.long.bb mkdir -p ${WORKDIR}/release/${db} cp lovd.${db}.{short,long}.bb ${WORKDIR}/release/${db}/ done echo LOVD update: OK