serverbioinformaticscytoscape

using cytoscape on server


i am trying to implement cytoscape in my lab and have installed it on the centralized server which we access via ssh from own terminals (with x11 forwarding).

i did find an answer by Scooter Morris to the question by RNA123 here, and currently my cytoscape 3.8.2 installation (as root) in /opt/ works by executing it as non-root user. however, if a second user launches it while an instance is already running, it throws the error:

karaf: There is a Root instance already running with name Cytoscape 3.8.2 and pid 121496. If you know what you are doing and want to force the run anyway, export CHECK_ROOT_INSTANCE_RUNNING=false and re run the command.

is there a way to have a centralised installation of cytoscape and have multiple users access it from their own terminals? or is it safe to do:

CHECK_ROOT_INSTANCE_RUNNING=false


Solution

  • Here is the answer I posted on BioStars:

    Yes, it should be safe, although there are some caveats. Once you get past the "CHECK_ROOT_INSTANCE_RUNNING" you'll get an error about "port already open". This is because Cytoscape attempts to open a port for it's REST interface. You can easily wrap the Cytoscape launch in a python or shell script that randomizes the port to avoid that problem, but if you have users using RCy3 or py4cytoscape, they would have to know the port to connect to. The best solution, especially in an hpc environment, is to run Cytoscape in a docker or singularity container and map the REST port "1234" to something user-specific.

    I'll add one more comment here. That last part about mapping the REST port is really important. If nobody maps the REST port and a second user launches Cytoscape and then uses CyREST, they will "take control" of the first user's Cytoscape. Definitely not what you want.