Skip to content

Commit

Permalink
IGV 2.5: update to version 2.5.2
Browse files Browse the repository at this point in the history
thomas committed May 14, 2019
1 parent 4f91d85 commit 4a89b17
Showing 1 changed file with 151 additions and 0 deletions.
151 changes: 151 additions & 0 deletions igv-2.5.2-0.build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
#! /bin/bash

# http://software.broadinstitute.org/software/igv/

set -ex

PKG=igv
VERSION=2.5.2
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

0 comments on commit 4a89b17

Please sign in to comment.