freenode/#clasp - IRC Chatlog
Search
16:16:46
drmeister
selwyn: Here's how I'm using the jupyter notebook to debug the algorithm that I'm implementing.
16:17:44
drmeister
That shows the animation of the optimization process that turns a molecule described as a network of atoms and bonds starting with random coordinates into a pleasing (to a chemist) flat cartoon of the molecule.
16:19:01
drmeister
Kevslinger: At the end of that animation you see the problem that I described yesterday. When I use the scroll mechanism on my mouse to make the molecule bigger and smaller - it also scrolls the jupyter notebook up and down at the same time. This is new behavior that showed up a couple of weeks ago. It's very annoying and hard to figure out where it is coming from.
16:19:50
drmeister
So I end up making the image larger (and scroll down) and then moving the mouse to the left where scrolling only moves the notebook up and go back and forth like that.
16:20:02
selwyn
does the cartoon correspond to the real-life geometric configuration of the molecule in any way? for example are the angles between the bonds
16:20:58
Kevslinger
I guess you could go into full-screen with the molecule, but that's pretty painful if you have to do it often
16:21:42
drmeister
selwyn: The cartoon corresponds more or less to how a chemist would sketch the molecule in a molecule sketching program. This image is rendered with tubes while a chemist would use simple lines and letters for non-carbon elements. But the layout is close to what a chemist would sketch.
16:24:28
selwyn
i am deciding between using the CLIM graphical inspector and jupyter notebooks for something similar for a new project
16:57:18
drmeister
I don't know - it's some molecule that I'm using as a test case. This one isn't one that we make.
17:00:15
selwyn
so.. are you optimising over time the value of a cost function which measures how regular the rendition of the molecule looks on the screen?
18:32:40
Kevslinger
So xeus-python isn't compatible with nglview at the moment because of dependency issues. I think xeus-python is using an outdated IPython (or nglview is), but I'm not sure. Been trying to dig through it
19:59:15
drmeister
selwyn: I learned some new optimization techniques implementing this algorithm. It simulates the motions of the atoms by calculating the forces on each atom and integrating Newton's laws of motion. It has a collection of "correction terms" that give the force a kick in an appropriate direction when the shape of the molecule goes wrong in some way.
20:30:14
scymtym
selwyn: are you aware that the McCLIM inspector has been rewritten and is much better now?
20:51:55
Kevslinger
drmeister: When I try to run `import nglview as ngl` in the Xeus-python kernel, I get an error where nglview is trying to import classes from IPython. When I open a regular (ipykernel) python notebook, I don't get that issue, and nglview imports fine
20:52:40
Kevslinger
It's gotta be something with versioning in the xeus kernel I think. On. another note, I think these MacBook keyboards are the worst thing Apple has done in quite some time.
21:03:47
drmeister
Kevslinger: Could you paste the error you see with "import nglview as ngl" in the Xeus-python kernel?
21:06:12
Kevslinger
it's strange because I can run that exact line in the py3 kernel and it works fine (not the xeus kernel)
21:13:57
drmeister
If you removed those functions and the "HTML" from import HTML,... I wonder if it goes farther.
21:16:05
Kevslinger
the other imports (Javascript, display) also don't work and are used elsewhere. I'll keep hacking and see if I can easily get it
21:18:49
drmeister
https://ipython.readthedocs.io/en/stable/api/generated/IPython.display.html#IPython.display.HTML
21:24:54
Kevslinger
Both that and another example I tried gave me `Error displaying widget: model not found`
21:25:33
Kevslinger
Which might be because I had to comment out the ipython_display function here https://github.com/arose/nglview/blob/master/nglview/player.py#L784
21:27:05
drmeister
OTOH it should use the structure _ipython_display_ in widget.py for a static structure.
21:32:29
Kevslinger
Okay, I found some errors on GitHub and am using the JS console. Will try to debug and I'll get back to you if I figure anything. out
21:33:29
drmeister
I see the dependencies https://github.com/QuantStack/xeus-python#installation-from-source
21:36:20
Kevslinger
To get xeus-python up and running, I made a Miniconda environment with xeus-python, jupyterlab, and I think jupyter
21:36:55
Kevslinger
I can document the steps to go from 0 to a running notebook with xeus-python. The steps on Github assume you have Conda setup with Jupiter lab already
21:38:40
Kevslinger
yeah, I'm getting some error messages from the JS console. I don't really understand them, but I'll start copy-pasting and crossing my fingers.
21:40:45
Kevslinger
This issue seems related to https://github.com/jupyterlab/jupyterlab/issues/2791, which was then closed as it was related to https://github.com/jupyterlab/jupyterlab/issues/2831
3:47:24
Kevslinger
I started writing up the issue to write to nglview, and then I found that while we comment out all uses of HTML in js_utils.py, we don't edit out all uses of JAVASCRIPT. In particular, the run function https://github.com/arose/nglview/blob/master/nglview/utils/js_utils.py#L17 uses the Javascript class, and the run function gets called by all other functions in that file.
3:48:09
Kevslinger
I hacked that line 17 out and now I don't get the same error showing widget from before, I just get a `NGLWidget()` as output. I'll include this in the issue