Creating Screenshots in IGV
May 31st, 2015
Just added a little script to github that automatically creates static screenshots for a large number of sites in IGV. The tricky part is getting it to run on a headless computer cluster (since IGV is a memory hog and we may want to look at a large number of sites across a large number of samples).
This is complicated by the fact that IGV demands that it actually pump the data to a display server, whether or not anyone is actually looking at it. So what we do is first, find an open display port (since lots of jobs may be landing on the same machine).
DISPLAY_NUM=0
echo $DISPLAY_NUM
until [[ $DISPLAY_NUM > 25 ]]; do
echo "Looking for display on $DISPLAY_NUM..."
Xvfb :$DISPLAY_NUM -nolisten tcp> /dev/null 2>&1 &
pid=$!
sleep 2
lsof -a -U -p $pid > /dev/null 2>&1
notfound="$?"
. . .
Then if we found an open port and were able to launch a non-displayed display server using Xvfb, we can set the DISPLAY env variable and run IGV in batch mode:
if [ "$notfound" == "0" ];then
export DISPLAY=:$DISPLAY_NUM
echo $DISPLAY
java -Xmx8000m -Dapple.laf.useScreenMenuBar=true -Djava.net.preferIPv4Stack=true -jar /gsc/scripts/pkg/bio/igv/installed/igv.jar --batch $1
. . .
Tags: | Comments Off