Skip to main content

Display and Edit Molecular Structures and Trajectories in the Browser.

Reason this release was yanked:

wrong frontend

Project description

zincware PyPI version DOI codecov 'Threejs

ZnDraw

Welcome to ZnDraw, a powerful tool for visualizing and interacting with your trajectories.

Installation

It is recommeded to install ZnDraw from PyPi via:

pip install zndraw

Quick Start

Visualize your trajectories with a single command:

zndraw <file>

[!NOTE] ZnDraw's webapp-based approach allows you to use port forwarding to work with trajectories on remote systems.

Multi-User and Multi-Client Support

ZnDraw supports multiple users and clients. Connect one or more Python clients to your ZnDraw instance:

  1. Click on Python access in the ZnDraw UI.
  2. Connect using the following code:
from zndraw import ZnDraw

vis = ZnDraw(url="http://localhost:1234", token="<your-token>")

The vis object provides direct access to your visualized scene. It inherits from abc.MutableSequence, so any changes you make are reflected for all connected clients.

from ase.collections import s22
vis.extend(list(s22))

Additional Features

You can modify various aspects of the visualization:

  • vis.camera
  • vis.points
  • vis.selection
  • vis.step
  • vis.figure
  • vis.bookmarks
  • vis.geometries

For example, to add a geometry:

from zndraw import Box

vis.geometries = [Box(position=[0, 1, 2])]

Writing Extensions

Make your tools accessible via the ZnDraw UI by writing an extension:

from zndraw import Extension

class AddMolecule(Extension):
    name: str

    def run(self, vis, **kwargs) -> None:
        structures = kwargs["structures"]
        vis.append(structures[self.name])
        vis.step = len(vis) - 1

vis.register(AddMolecule, run_kwargs={"structures": s22}, public=True)
vis.socket.wait()  # This can be ignored when using Jupyter

The AddMolecule extension will appear for all tokens and can be used by any client.

Hosted Version

A hosted version of ZnDraw is available at https://zndraw.icp.uni-stuttgart.de . To upload data, use:

zndraw-upload <file> --url https://zndraw.icp.uni-stuttgart.de

Self-Hosting

To host your own version of ZnDraw, use the following docker-compose.yaml setup:

version: '3.9'

services:
  zndraw:
    image: zndraw:dev
    command: --no-standalone /src/file.xyz
    volumes:
      - /path/to/files:/src
    restart: unless-stopped
    ports:
      - 5003:5003
    depends_on:
      - redis
      - worker
    environment:
      - FLASK_STORAGE=redis://redis:6379/0
      - FLASK_AUTH_TOKEN=super-secret-token

  worker:
    image: zndraw:dev
    entrypoint: celery -A zndraw.make_celery worker --loglevel=info -P eventlet
    volumes:
      - /path/to/files:/src
    restart: unless-stopped
    depends_on:
      - redis
    environment:
      - FLASK_STORAGE=redis://redis:6379/0
      - FLASK_SERVER_URL="http://zndraw:5003"
      - FLASK_AUTH_TOKEN=super-secret-token

  redis:
    image: redis:latest
    restart: always
    environment:
      - REDIS_PORT=6379

References

If you use ZnDraw in your research and find it helpful please cite us.

@misc{elijosiusZeroShotMolecular2024,
  title = {Zero {{Shot Molecular Generation}} via {{Similarity Kernels}}},
  author = {Elijo{\v s}ius, Rokas and Zills, Fabian and Batatia, Ilyes and Norwood, Sam Walton and Kov{\'a}cs, D{\'a}vid P{\'e}ter and Holm, Christian and Cs{\'a}nyi, G{\'a}bor},
  year = {2024},
  eprint = {2402.08708},
  archiveprefix = {arxiv},
}

Acknowledgements

The creation of ZnDraw was supported by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) in the framework of the priority program SPP 2363, “Utilization and Development of Machine Learning for Molecular Applications - Molecular Machine Learning” Project No. 497249646. Further funding though the DFG under Germany's Excellence Strategy - EXC 2075 - 390740016 and the Stuttgart Center for Simulation Science (SimTech) was provided.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zndraw-0.4.0a11.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

zndraw-0.4.0a11-py3-none-any.whl (1.7 MB view details)

Uploaded Python 3

File details

Details for the file zndraw-0.4.0a11.tar.gz.

File metadata

  • Download URL: zndraw-0.4.0a11.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.5 Darwin/23.5.0

File hashes

Hashes for zndraw-0.4.0a11.tar.gz
Algorithm Hash digest
SHA256 8c0be857a45f414d1dad614c8e490d19a0b01dc349cd793ae644c6adf7c51bc5
MD5 ffdd2341693cd14c936339d49075fb3f
BLAKE2b-256 042ece0778c27ca53b244e26b2683803af0ce3d72ddbf05e10b1580acf088040

See more details on using hashes here.

File details

Details for the file zndraw-0.4.0a11-py3-none-any.whl.

File metadata

  • Download URL: zndraw-0.4.0a11-py3-none-any.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.5 Darwin/23.5.0

File hashes

Hashes for zndraw-0.4.0a11-py3-none-any.whl
Algorithm Hash digest
SHA256 7aff577dfebda86f43d8e7a7c9a55b1c81149b8e45f12ba6d3c26f791bc94b38
MD5 4c0cc61f1cbb1a8062c4f28eeace6996
BLAKE2b-256 dcdff373a4861e25ca80c699c2405c9b93ea2bb920ea4033db981ad6a53dda06

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page