Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
executable file 151 lines (114 sloc) 4.03 KB
#! /bin/bash
# http://software.broadinstitute.org/software/igv/
set -ex
PKG=igv
VERSION=2.5.0
VERSION2=$(echo $VERSION | cut -d. -f1,2)
BUILD=0
PREFIX=/pkg/$PKG-$VERSION-$BUILD
if [ -n "$TESTING" ]; then PREFIX=/dev/shm/$PKG-$VERSION-$BUILD ; fi
mkdir -p $PREFIX
cd $PREFIX
mkdir -p attic
if test -e attic/IGV_Linux_$VERSION.zip ; then
rm -vfr bin
mv attic/IGV_Linux_$VERSION.zip .
rm -vfr attic/*
else
wget http://data.broadinstitute.org/igv/projects/downloads/$VERSION2/IGV_Linux_$VERSION.zip
fi
unzip IGV_Linux_$VERSION.zip
mkdir -p attic
mv IGV_Linux_$VERSION.zip attic
mv IGV_Linux_$VERSION bin
mv bin/readme.txt attic
mv bin/igv* attic
# trash the bundled jdk ("AdoptOpenJDK"/JAVA_VERSION="11.0.2")
rm -fr bin/jdk-11
cat >$PREFIX/profile <<-EOF
. /pkg/openjdk-11.0.3.2-0/profile
PATH=$PREFIX/bin:\$PATH
if [ -d $PREFIX/.compatlibs ]; then export LD_LIBRARY_PATH=$PREFIX/.compatlibs\${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH} ; fi
EOF
######################################################################
# Setup our own startup scripts, and try to be smarter with the memory
############################# bin/igv ##############################
cat >bin/igv <<-'EOF'
#!/bin/sh
#-Xmx4g indicates 4 gb of memory, adjust number up or down as needed
#Script must be in the same directory as igv.jar
#Add the flag -Ddevelopment = true to use features still in development
MEM_KB=$(grep 'MemTotal:' /proc/meminfo | head -1 | rev | cut -d' ' -f2 | rev)
MEM_GB=$(( $MEM_KB/1024/1024 ))
CONSIDER="# Consider using 'igvxmem XYZg' to start igv with proper memory setup."
if test $MEM_GB -lt 4; then
MSG="# This is fairly below the suitable amount of 4 GB.\n$CONSIDER"
elif test $MEM_GB -gt 9 ; then
MSG="$CONSIDER\n# To gain better performance you may increase the memory in sane steps."
fi
if test -n "$MSG"; then
echo '# NOTE:'
echo "# found approx. $MEM_GB GB of Memory on your host."
echo '#'
echo -e "$MSG"
echo '#'
echo '# igv with default settings will start in 5 seconds ...'
sleep 5
fi
prefix=`dirname \$(readlink \$0 || echo \$0)`
exec java --module-path="${prefix}/lib" -Xmx4g \
@"${prefix}/igv.args" \
-Dsun.java2d.uiScale=1 \
-Dapple.laf.useScreenMenuBar=true \
-Djava.net.preferIPv4Stack=true \
--module=org.igv/org.broad.igv.ui.Main "$@"
EOF
chmod 755 bin/igv
############################ bin/igvxmem ###########################
cat >bin/igvxmem <<-'EOF'
#!/bin/sh
#-Xmx4g indicates 4 gb of memory, adjust number up or down as needed
#Script must be in the same directory as igv.jar
#Add the flag -Ddevelopment = true to use features still in development
MEM=4g
case $1 in
[1-9]g |\
[1-9][0-9]g |\
[1-2][0-9][0-9]g)
MEM=$1
shift
;;
*)
echo "# Error: need a proper value for memory to use, eg. 8g"
exit 1
;;
esac
prefix=`dirname \$(readlink \$0 || echo \$0)`
exec java --module-path="${prefix}/lib" -Xmx$MEM \
@"${prefix}/igv.args" \
-Dsun.java2d.uiScale=1 \
-Dapple.laf.useScreenMenuBar=true \
-Djava.net.preferIPv4Stack=true \
--module=org.igv/org.broad.igv.ui.Main "$@"
EOF
chmod 755 bin/igvxmem
############################ bin/igv.args ##########################
cat >bin/igv.args <<-'EOF'
# Arguments to support JIDE on Java 11
--add-exports java.desktop/javax.swing.plaf.synth=jide.common
--add-exports java.desktop/sun.swing=jide.common
--add-exports java.desktop/sun.awt=jide.common
--add-exports java.desktop/sun.awt.image=jide.common
--add-exports java.desktop/sun.awt.shell=jide.common
--add-exports java.desktop/sun.awt.dnd=jide.common
--add-exports java.base/sun.security.action=jide.common
# Disable a JAXB optimization that causes illegal access exceptions on Java 11
-Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize
EOF
chmod 644 bin/igv.args
############################# "HiDpi" ###########################
sed -e 's/uiScale=1/uiScale=2/' bin/igv > bin/igv_hidpi
sed -e 's/uiScale=1/uiScale=2/' bin/igvxmem > bin/igvxmem_hidpi
chmod 755 bin/igv_hidpi
chmod 755 bin/igvxmem_hidpi
exit