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
+