You are here

PyMOL not displaying mover input

3 posts / 0 new
Last post
PyMOL not displaying mover input
#1

Hey there.

I run a Linux subsystem (Linux 4.19.128-microsoft-standard x86_64) on Win10 (Build 19041.508) with wsl2 and Ubuntu 20.04.1 LTS. I successfully installed PyRosetta 4 (python 3.8 release 265).
Python: 3.8.2

On my windows I installed Pymol 2.4.1 198.

If I tell PyMOL to execute the PyMOL-RosettaServer.python3.py script from PyRosetta folder,
-> run \\wsl$\Ubuntu-20.04\home\[User]\PyRosetta4\PyMOL-RosettaServer.python3.py

it will return
PyMOL <---> PyRosetta link started!
at 127.0.0.1 port 65000

This makes it seem like everything is alright.
However, if I tell pyrosetta to apply something to a mover or run a script with a mover like this for instance,
-> python PyRosetta4/test/T150_PyMOL_Integration.py

it will not show anything in PyMOL. Also, there are no errors (both when typing everything by hand
like this code in initialised PyRosetta for instance:

pose = pose_from_rcsb('1yy8')

pymover = PyMOLMover()

pymover.apply(pose)

or executing the script.

I have already checked port availability in resource monitor.

Now I feel like it should definitely work and have started to hypothesise that I did something wrong in PyMOL but I can't seem to find the thing that fixes it.

Help is most appreciated.

Category: 
Post Situation: 
Thu, 2020-10-01 02:50
Butterdream

I've had the same issue with WSL, even when I explictly state which IP adress and Port to use with PyMOLMover. 

from pyrosetta import PyMOLMover
pmm = PyMOLMover('127.0.0.1', 65000)
pose = pose_from_pdb("inputs/5tj3.pdb")
pmm.apply(pose)

 

Mon, 2020-12-28 10:24
Forrest Hsu

I figured it out! Here's my findings.

WSL2 is an entirely seperate virtual machine, and needs to be treated as if it was another computer. As such, the local IP 127.0.0.1 can not work.

WSL2 can communicate with windows via another IP address. This address changes every time you restart WSL, but it can be found by typing the following command into the wsl terminal, with the IP highlighted.

input
cat /etc/resolv.conf
output
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 123.45.678.9

Ideally you cloud then run the PyMOLMover server at this IP address, but it was throwing all sorts of errors at me for unknown reasons. Instead, I ran the server at 0.0.0.0:65000, then used power shell to make a port proxy that fixed it.

netsh interface portproxy add v4tov4 listenport=65000 listenaddress=0.0.0.0 connectport=65000 connectaddress=123.45.678.9

After this, running this in PyRosetta should make it all work.

PyMOLMover('123.45.678.9', 65000)

Mon, 2020-12-28 20:36
Forrest Hsu