Skip to main content

Package for reading of .xyz files and constructing of molecular graphs from atomic coordinates.

Project description

xyz2graph

PyPI version Python Version License

PyPI Downloads GitHub Stars GitHub Forks

"Buy Me A Coffee" Stand With Ukraine

A lightweight Python package for reading XYZ files and creating interactive molecular visualizations. Convert molecular structures into 3D visualizations using Plotly or analyze them as NetworkX graphs.

Features

  • Read and parse XYZ molecular structure files
  • Generate interactive 3D molecular visualizations using Plotly
  • Convert molecular structures to NetworkX graphs for analysis
  • Command-line interface for quick visualizations

Installation

pip install xyz2graph

Requirements

  • Python 3.8+
  • NumPy
  • NetworkX
  • Plotly

Usage

Python API

from xyz2graph import MolGraph
from plotly.offline import plot

# Create molecular graph and read XYZ file
mg = MolGraph()
mg.read_xyz('molecule.xyz')

print(mg)  # e.g., "MolGraph(H20: 3 atoms, 2 bonds)"
print(mg.formula())  # e.g., "H20"

# Generate interactive 3D visualization
fig = mg.to_plotly()
plot(fig)

# Convert to NetworkX graph for analysis
G = mg.to_networkx()

Jupyter Notebook

from xyz2graph import MolGraph
from plotly.offline import init_notebook_mode, iplot

# Initialize Plotly for notebook
init_notebook_mode(connected=True)

# Create and display molecular visualization
mg = MolGraph()
mg.read_xyz('molecule.xyz')
fig = mg.to_plotly()
iplot(fig)

Command Line Interface

Quickly visualize molecules from XYZ files:

# Save visualization as HTML
xyz2graph molecule.xyz

# Specify output file
xyz2graph molecule.xyz --output visualization.html

# Open directly in browser
xyz2graph molecule.xyz --browser

Customization

Customize atomic properties for visualization:

mg = MolGraph()

# Customize atomic radius
mg.set_element_radius('C', 0.75)

# Customize element color
mg.set_element_color('O', 'red')

# Set default color for unlisted elements
mg.set_default_color('pink')

Examples

Example XYZ files can be found in the examples directory.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Citation

If you use xyz2graph in your research, please cite:

@misc{xyz2graph,
  author       = {Zotko, Mykola},
  title        = {xyz2graph: Molecular Structure Visualization},
  year         = {2018},
  publisher    = {GitHub},
  url          = {https://github.com/zotko/xyz2graph}
}

Project details


Download files

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

Source Distribution

xyz2graph-3.0.4.tar.gz (665.3 kB view details)

Uploaded Source

Built Distribution

xyz2graph-3.0.4-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file xyz2graph-3.0.4.tar.gz.

File metadata

  • Download URL: xyz2graph-3.0.4.tar.gz
  • Upload date:
  • Size: 665.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for xyz2graph-3.0.4.tar.gz
Algorithm Hash digest
SHA256 50bb912b9457e32ccf1c617c030c723c41445876bda792ef58e048863a203e22
MD5 fd7df490c8424b703d2e9c3215aaac60
BLAKE2b-256 bb6e41c05799057814a4a8b4f5bd8aed81bba58178fb201ef221b757357d6765

See more details on using hashes here.

File details

Details for the file xyz2graph-3.0.4-py3-none-any.whl.

File metadata

  • Download URL: xyz2graph-3.0.4-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for xyz2graph-3.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 18c4911bd52dba56eaec82186b66bd8e2d543d9f335e30f54e77f41aaa111978
MD5 1de4e806bd0d4d5e200dbf6fe631dff8
BLAKE2b-256 cfae10908c3cad9b71134da13ee00b828914b2d1a8fe91b35d2dd9204acec316

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