GNU General Public License v3.0

项目介绍

BradyAJohnston/MolecularNodes 是一个托管在 GitHub 上的开源项目,主要使用 Python 编写,采用 GNU General Public License v3.0 许可证,目前获得 1.4k 个 Star、137 次 Fork。

仓库全名
BradyAJohnston/MolecularNodes
开源许可证
GNU General Public License v3.0
Star 数
1.4k
Fork 数
137
未关闭 Issue
59

README 摘要

Molecular Nodes 🧬🍝💻 Molecular Nodes imports structural biology data into Blender and styles, animates and renders it. It reads static structures from the PDB, AlphaFold and local files, molecular dynamics topologies and trajectories, oxDNA simulations, electron microscopy density maps, and .star and CellPack ensembles. Styles are Geometry Nodes trees, so every part of a style can be edited, combined and animated…

完整内容见 GitHub 原始 README 或本页 。

常见问题

MolecularNodes 用什么语言开发?

主要使用 Python 编写,采用 GNU General Public License v3.0 许可证,目前有 1.4k 个 Star。

MolecularNodes 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 MolecularNodes 的源码?

可以直接克隆仓库:git clone https://github.com/BradyAJohnston/MolecularNodes.git,默认分支为 main;安装与运行步骤见仓库 README。

MolecularNodes 最近还在维护吗?

仓库最近一次更新为 1 周前,当前有 59 个未关闭 Issue;Star 数为 1.4k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

Toolbox for molecular animations in Blender, powered by Geometry Nodes.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

语言占比

Python

Release

README

Molecular Nodes 🧬🍝💻

Lint Build Docs CodSpeed

Blender Extensions downloads GitHub release GitHub downloads PyPI PyPI downloads

License DOI Powered by Biotite Powered by MDAnalysis GitHub stars

Join the scientific visualisation in Blender discord. Support me on Patreon with ongoing donations Support me by buying a couple of coffees as a one-off donation

Molecular Nodes imports structural biology data into Blender and styles, animates and renders it. It reads static structures from the PDB, AlphaFold and local files, molecular dynamics topologies and trajectories, oxDNA simulations, electron microscopy density maps, and .star and CellPack ensembles. Styles are Geometry Nodes trees, so every part of a style can be edited, combined and animated with the rest of Blender.

Molecular Nodes works as a Blender extension through the GUI, and as a Python package that scripts Blender for notebooks and pipelines.

Procedural animations Styles MD trajectories EM density maps

Installation

Blender extension

In Blender 5.2, open Edit > Preferences > Get Extensions, search for Molecular Nodes and click Install. The extension is also on the Blender Extensions platform and on GitHub releases, to install from disk. The installation page has step-by-step instructions.

Python package

pip install "molecularnodes[bpy]"

molecularnodes requires Python 3.13, the version Blender 5.2 uses. bpy (Blender as a Python module) is an optional dependency, so installing inside Blender doesn’t install a second copy of Blender; the [bpy] extra installs it for use outside Blender.

Supported Blender versions

The version number follows Blender: Molecular Nodes 520.x is built for Blender 5.2. Each Blender version below runs the test suite on Linux, macOS and Windows, both with the bpy module and inside an installed Blender. Unreleased Blender versions are tested with their daily builds.

Blender Molecular Nodes Tests
5.2 520.x Blender 5.2
5.3 (beta) tested on main Blender 5.3
5.4 (alpha) tested on main Blender 5.4

Each night, Test Daily Build installs the built extension into the latest Blender daily build and runs the tests there.

Releases for earlier Blender versions remain on GitHub releases and the Blender Extensions platform.

Using the GUI

After installing the extension, add structures from the 3D Viewport’s Add > Molecular Nodes menu: fetch from the PDB or AlphaFold, or import a local file, an MD trajectory, an oxDNA simulation, a density map, a .star file or a CellPack model. The Molecular Nodes tab of the 3D Viewport sidebar (N) lists the imported entities and their styles, and holds the trajectory, DSSP and annotation settings.

Each style is a node group in the object’s Geometry Nodes tree. The node documentation describes every node, and the tutorials walk through importing, selections, trajectories and cryo-EM data.

Using the Python API

The Python API creates the same objects and node trees as the GUI. Create a Canvas first, which sets up the scene, then load, style and render molecules:

import molecularnodes as mn

canvas = mn.Canvas(mn.scene.Cycles(samples=32), resolution=(720, 480))

mol = mn.Molecule.fetch("4ozs")
mol.add_style("cartoon", material=mn.material.AmbientOcclusion())
mol.add_style("ball_and_stick", selection="resname ARG")
canvas.look_at(mol)
canvas.snapshot("4ozs.png")

Selections are MDAnalysis selection strings. MD topologies and trajectories load into the same Molecule, either from files or from an existing MDAnalysis.Universe, and the scene frame steps through the trajectory:

import MDAnalysis as mda

u = mda.Universe("topology.psf", "trajectory.dcd")
traj = mn.Molecule(u)  # or mn.Molecule.load("topology.psf", "trajectory.dcd")
traj.add_style("cartoon")
canvas.look_at(traj)
canvas.animation("trajectory.mp4", frame_start=1, frame_end=50)

The Python API documentation covers the canvas, styles, materials, trajectories and rendering, with rendered examples. The API is experimental and may change between versions.

Examples

The examples page collects videos and projects made with Molecular Nodes, and the citations page lists academic papers that use it.

Clockwork Veritasium BCON22 talk
Clockwork: Your Unstoppable Copy Machine Veritasium: What if all the world's biggest problems have the same solution? Molecular Nodes talk at the Blender Conference 2022

Contributing

Open an issue to discuss a new feature, or comment on an existing issue to help fix it. CONTRIBUTING.md explains how the project is structured and how to build, test and document changes, and AI_POLICY.md sets out how AI tools may be used in contributions.

Citation

There is no paper on Molecular Nodes yet. To cite it in academic work, use the Zenodo record.

Thanks

Thanks to the Blender Foundation, which develops Blender as free and open source software, and to the developers of the Python packages Molecular Nodes builds on, in particular Biotite and MDAnalysis.

The Blender logo.

评论

暂无评论