Hosting IGV web on a server

I have my analysis on a cloud server. The data is quite large, so copying it locally is not really an option. I want to be able to host IGV as a server on that server, so that it can access those files.

I installed IGV web (https://github.com/igvteam/igv-webapp) on my server, and ran it, but the Tracks → Local File option opens a file browser on my local machine, it doesn't let me select files on the server.

Is there any easy way to host IGV web on a cloud server?

• Please add some info. Which cloud platform are you using? A commercial solution or an in-house server? What operating system are you using to access the server? Jul 23 '19 at 4:23
• I'm not sure the cloud platform matters. It's just a remote server setup using OpenStack. I'm using Ubuntu both on the server and on my local machine. Jul 23 '19 at 5:51
• It only matters in the in way that you enable X11 forwarding in my solution below. I suppose the specifics of X11 forwarding on different platforms would be better suited for StackOverflow. My answer outlines how to run IGV on a server and access the GUI using an ssh client. Jul 24 '19 at 16:22

You can use X11 forwarding to run IGV on the headless server where the data is located and simply forward the GUI to your client machine using the X11 protocol. This is a solution I use consistently for my research when working with 20+ tracks that I want to keep on the server.

2. Connect to the server using ssh with X11 forwarding enabled

ssh -X user@server

3. Navigate to the recently downloaded and unzipped IGV folder. Execute the igv.sh script.

./igv.sh

The script launches the IGV session with 4gb of memory. Edit the script to launch with more, 32gb in this edited excerpt.

exec java -showversion --module-path="$${prefix}/lib" -Xmx32g \ @"$${prefix}/igv.args" \
-Djava.net.preferIPv4Stack=true \

• This will probably work the best in my situation. I'm guessing it won't be so helpful for people who don't use X11 on their local machines, though. Jul 30 '19 at 2:55
• My setup also required -Y option, ssh -XY user@server Apr 17 '20 at 18:46

According to their discription

igv-webapp is a pure-client "genome browser" application based igv.js.

Pure-client, so it will be difficult to let it display tracks that are on the server itself. Perhaps you are looking for something more similar to the Apollo Genome browser. This, while more difficult to install, allows for the display of server-side data tracks and allows for manual curating of annotations as a nice bonus :)

One possibility might be to put the full IGV application on the server, and use the igvR package in R on the server to access the IGV API. You could then use R plotting facilities etc to show your data, accessed via the IGV API. There might be APIs for IGV in other languages, if you prefer, not sure.
Edit: I haven't tried this package, this is a speculative idea.

obviously I'm late but if this is still an open question open an issue in one of our github projects,
github.com/igvteam/igv (Java desktop), github.com/igvteam/igv.js (pure javascript component), github.com/igvteam/igv-webapp (html/javascript application, 100% client side) as appropriate.

As already mentioned the web igvs are 100% client, data is fetched from servers using range requests. It scales very well, as long as your data is indexed. If you really want to generate server side images a better choice might be the UCSC genome browser which is designed for that.