Giter VIP home page Giter VIP logo

Comments (11)

cksajil avatar cksajil commented on June 10, 2024 1

I have created a semi-automated solution for this. Please see https://intuitivetutorial.com/2021/07/06/visualizing-3d-protein-structures-and-exporting-into-images-using-jupyter-notebook/

from nglview.

hainm avatar hainm commented on June 10, 2024

Example

tv.savefig(filename, frame=None) # current frame
tv.savefig(filename, frame=3)

from nglview.

arose avatar arose commented on June 10, 2024

Do you want to save it through the Python kernel or just as a browser download?

The browser download is straightforward, just call stage.exportImage(...) in the widget.

Via Python would require some changes to ngl to get the image data and the widget would then convert to a base64 string to send to the kernel; Or send it via the more efficient approach outlined in #3.

from nglview.

arose avatar arose commented on June 10, 2024

see also nglviewer/ngl#33

from nglview.

hainm avatar hainm commented on June 10, 2024

I am more interested in saving png file jupyter notebook. Might be two ways to save?

  • from viewer
import nglview as nv
view = nv.TrajectoryViwer(...)
view.savefig(...)
  • from right clicking from the screen in the viewer (in notebook).

from nglview.

arose avatar arose commented on June 10, 2024

I am not sure I understand. Should the image be saved via a download from the browser or via the Jupyter kernel running Python?

from nglview.

hainm avatar hainm commented on June 10, 2024

via the Jupyter kernel running Python

from nglview.

arose avatar arose commented on June 10, 2024

Ok, then the NGL issue needs to be addressed first.

from nglview.

hainm avatar hainm commented on June 10, 2024

What I have in mind is

import pytraj as pt
import nglview as nv

traj = pt.load('t.nc', 't.parm7')
view = nv.show_pytraj(traj)

for idx_frame in range(traj.n_frames):
    view.frame = idx_frame
    view.save_snapshot('snapshot_{}'.format(idx_frame))

# or better
view.make_movie([...], engine='external_program_can_make_movie')

from nglview.

arose avatar arose commented on June 10, 2024

This means a lot of data will travel from Browser to Kernel, which brings us back to #3.

from nglview.

hainm avatar hainm commented on June 10, 2024

so now user can download snapshot from Python side. I am thinking about method's name.
Prefer short one.

  • export_image
  • savefig
  • download_snapshot
  • screenshot
  • ...

example

def screenshot(self):
    self._remote_call('screenshot', target='stage', kwargs=params)

screenshot seems to be good name. :D

from nglview.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.