Comments (11)
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.
Example
tv.savefig(filename, frame=None) # current frame
tv.savefig(filename, frame=3)
from nglview.
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.
see also nglviewer/ngl#33
from nglview.
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.
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.
via the Jupyter kernel running Python
from nglview.
Ok, then the NGL issue needs to be addressed first.
from nglview.
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.
This means a lot of data will travel from Browser to Kernel, which brings us back to #3.
from nglview.
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)
- Nglview not showing HOT 9
- Load MD trajectory with controls HOT 2
- VSCode : receiving java script error while running nv.demo() HOT 13
- follow up problem on rendering data and saving it to file ( based on FAQ: How to make nglview view object write PNG file?) HOT 9
- Compatibility with jupyterlab 4 HOT 6
- How to load both surface point and protein at the same time? HOT 2
- custom rgb color HOT 4
- vscode generates empty image HOT 5
- Support `inferBonds` parameter in PDB files HOT 4
- slow shape.add_cylinder HOT 1
- Component handling not working properly under Google Colab HOT 4
- upgrade nglview so will work with ipywidgets 8 or greater? HOT 9
- memory address error when rendering image from nglview HOT 3
- No widget renders on Jupyterlab 4.1 HOT 8
- Issue during rendering when using MovieMaker on NGLView HOT 6
- Visualizing arrows defined by atoms positions along a trajectory HOT 1
- nglview 3.1 not working with nbclassic 1.0 HOT 1
- write_html seems to be broken HOT 1
- Protein not showing as ribbons HOT 1
- Doesn't seem to work with google colab HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nglview.