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?

  • $\begingroup$ 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? $\endgroup$ – Kohl Kinning Jul 23 '19 at 4:23
  • $\begingroup$ 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. $\endgroup$ – Migwell Jul 23 '19 at 5:51
  • $\begingroup$ 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. $\endgroup$ – Kohl Kinning 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.

  1. Download and install IGV for linux from the IGV site on to your 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.


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" \
-Dapple.laf.useScreenMenuBar=true \
-Djava.net.preferIPv4Stack=true \
--module=org.igv/org.broad.igv.ui.Main "$@"
  • $\begingroup$ 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. $\endgroup$ – Migwell Jul 30 '19 at 2:55

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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.