diff NGSrich_0.5.5/thirdparty/fetchChromSizes @ 0:89ad0a9cca52 default tip

Uploaded
author pfrommolt
date Mon, 21 Nov 2011 08:12:19 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NGSrich_0.5.5/thirdparty/fetchChromSizes	Mon Nov 21 08:12:19 2011 -0500
@@ -0,0 +1,94 @@
+#!/bin/sh
+
+# fetchChromSizes - script to grab chrom.sizes from UCSC via either of:
+#	mysql, wget or ftp
+
+# "$Id: fetchChromSizes,v 1.2 2009/03/26 18:40:09 hiram Exp $"
+
+usage() {
+    echo "usage: fetchChromSizes <db> > <db>.chrom.sizes"
+    echo "   used to fetch chrom.sizes information from UCSC for the given <db>"
+    echo "<db> - name of UCSC database, e.g.: hg18, mm9, etc ..."
+    echo ""
+    echo "This script expects to find one of the following commands:"
+    echo "   wget, mysql, or ftp in order to fetch information from UCSC."
+    echo "Route the output to the file <db>.chrom.sizes as indicated above."
+    echo ""
+    echo "Example:   fetchChromSizes hg18 > hg18.chrom.sizes"
+    exit 255
+}
+
+DB=$1
+export DB
+if [ -z "${DB}" ]; then
+    usage
+fi
+
+WGET=`type wget 2> /dev/null | sed -e "s/.* is //"`
+MYSQL=`type mysql 2> /dev/null | sed -e "s/.* is //"`
+FTP=`type ftp 2> /dev/null | sed -e "s/.* is //"`
+
+if [ -z "${WGET}" -a -z "${MYSQL}" -a -z "${FTP}" ]; then
+    echo "ERROR: can not find any of the commands: wget mysql or ftp"
+    usage
+fi
+
+DONE=0
+export DONE
+if [ -n "${MYSQL}" ]; then
+    echo "INFO: trying MySQL ${MYSQL} for database ${DB}" 1>&2
+    ${MYSQL} -N --user=genome --host=genome-mysql.cse.ucsc.edu -A -e \
+	"SELECT chrom,size FROM chromInfo ORDER BY size DESC;" ${DB} 
+    if [ $? -ne 0 ]; then
+	echo "WARNING: mysql command failed" 1>&2
+    else
+	DONE=1
+    fi
+fi
+
+if [ "${DONE}" -eq 1 ]; then
+    exit 0
+fi
+
+if [ -n "${WGET}" ]; then
+    echo "INFO: trying WGET ${WGET} for database ${DB}" 1>&2
+    tmpResult=chromInfoTemp.$$.gz
+    ${WGET} \
+"ftp://hgdownload.cse.ucsc.edu/goldenPath/${DB}/database/chromInfo.txt.gz" \
+	-O ${tmpResult} 2> /dev/null
+    if [ $? -ne 0 -o ! -s "${tmpResult}" ]; then
+	echo "WARNING: wget command failed" 1>&2
+	rm -f "${tmpResult}"
+    else
+	zcat ${tmpResult} 2> /dev/null | cut -f1,2 | sort -k2nr
+	rm -f "${tmpResult}"
+	DONE=1
+    fi
+fi
+
+if [ "${DONE}" -eq 1 ]; then
+    exit 0
+fi
+
+if [ -n "${FTP}" ]; then
+    echo "INFO: trying FTP ${FTP} for database ${DB}" 1>&2
+    tmpFtpRsp=fetchTemp.$$
+    echo "user anonymous fetchChromSizes@" > ${tmpFtpRsp}
+    echo "cd goldenPath/${DB}/database" >> ${tmpFtpRsp}
+    echo "get chromInfo.txt.gz ${tmpResult}" >> ${tmpFtpRsp}
+    echo "bye" >> ${tmpFtpRsp}
+    ${FTP} -u -n -i hgdownload.cse.ucsc.edu < ${tmpFtpRsp} > /dev/null 2>&1
+    if [ $? -ne 0 -o ! -s "${tmpResult}" ]; then
+	echo "ERROR: ftp command failed" 1>&2
+	rm -f "${tmpFtpRsp}" "${tmpResult}"
+    else
+	zcat ${tmpResult} | cut -f1,2 | sort -k2nr
+	rm -f "${tmpFtpRsp}" "${tmpResult}"
+	DONE=1
+    fi
+fi
+
+if [ "${DONE}" -eq 0 ]; then
+    echo "ERROR: sorry, attempt to fetch chrom.sizes has failed ?" 1>&2
+    exit 255
+fi