Mercurial > repos > saskia-hiltemann > igv_screenshot
diff igvscreenshot.sh @ 0:aad38011de33 draft default tip
Uploaded
author | saskia-hiltemann |
---|---|
date | Tue, 28 Jul 2015 11:16:53 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/igvscreenshot.sh Tue Jul 28 11:16:53 2015 -0400 @@ -0,0 +1,115 @@ +# Get igv screenshot + +echo $@ + +# parse input parameters +set -- `getopt -n$0 -u -a --longoptions="track: region: archive: build: outfile: scriptdir: ftype: index: label: viewaspairs: view:" "h:" "$@"` || usage +[ $# -eq 0 ] && usage + +while [ $# -gt 0 ] +do + case "$1" in + --track) tracks+=",$2";shift;; + --region) region=$2;shift;; + --build) build=$2;shift;; + --outfile) outfile=$2;shift;; + --scriptdir) scriptdir=$2;shift;; + --ftype) ftypes+=",$2";shift;; + --index) indexfiles+=",$2";shift;; + --label) tracklabels+=",$2";shift;; + --view) view+=",$2";shift;; + --viewaspairs) viewaspairs+=",$2";shift;; + -h) shift;; + --) shift;break;; + -*) usage;; + *) break;; + esac + shift +done + +# location of IGV installation +igvlocation="${scriptdir}/IGV_2.1.28" + +# set preferences properly +echo -e "IGV.track.show.attribute.views=true +LAST_CHROMOSOME_VIEWED_KEY=All +DEFAULT_GENOME_KEY=${build}" > prefs.properties + +#IGV.Bounds=0,0,$width,$height +#SHOW_SEQUENCE_TRANSLATION=true +#IGV.Frame.ExtendedState=0 + +# parse track, filetype and indexfile strings +tracks=${tracks/,/} # remove leading comma from list +tracks=${tracks//,/ } # replace commas with spaces +ftypes=${ftypes/,/} # remove leading comma from list +indexfiles=${indexfiles/,/} # remove leading comma from list +tracklabels=${tracklabels/,/} # remove leading comma from list +tracklabels=${tracklabels// /_} # replace spaces with underscores for track labels +view=${view/,/} # remove leading comma from list +viewaspairs=${viewaspairs/,/} # remove leading comma from list + +# generate batch file recipe for igv +echo -e "new +genome ${build}" > recipe.txt + +# add tracks to recipe +IFS=',' read -a ftypearray <<< "$ftypes" +IFS=',' read -a indexarray <<< "$indexfiles" +IFS=',' read -a labelarray <<< "$tracklabels" +IFS=',' read -a viewarray <<< "$view" +IFS=',' read -a viewaspairsarray <<< "$viewaspairs" +count=0 +for track in $tracks +do + + # make symlink to file with the proper extension (or IGV will not work) + ftype=${ftypearray[count]} + label=${labelarray[count]} + ltrack="${label}.${ftype}" + ln -s ${track} ${ltrack} + + # link the index file too if needed + if [[ $ftype == "bam" ]] + then + indexltrack="${label}.bam.bai" + ln -s ${indexarray[count]} ${indexltrack} + fi + + # add track to recipe + echo -e "load ${ltrack}" >>recipe.txt + + # set view for track (collapsed/expanded/squished) + echo -e "${viewarray[count]} ${ltrack}" >> recipe.txt + + # set to view as pairs if requested + if [[ ${viewaspairsarray[count]} == "yes" ]] + then + echo -e "viewaspairs ${ltrack}" >> recipe.txt + fi + + + count=$[$count+1] + +done + + +echo -e "snapshotDirectory . +goto ${region//,/ } +sort base +snapshot screenshot.png +exit" >> recipe.txt + +# for debugging purposes: +echo -e "\nIGV batch recipe is:\n" +cat recipe.txt + +# setup X environment +echo -e "\nsetting up Xvfb:\n" +Xvfb :0 2>&1 & +export DISPLAY=:0 + +# run igv +echo -e "\nrunning IGV:\n" +igv.sh -b recipe.txt -o prefs.properties 2>&1 +