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

Comments are closed.