A program to edit molecular structures using Python.
Project description
moleditpy -- Python Molecular Editor
Pythonで構築された、シンプルで直感的な分子構造エディターです。2Dでの分子描画と、3D構造可視化をサポートします。
作者: HiroYokoyama ライセンス: Apache-2.0 リポジトリ: https://github.com/HiroYokoyama/python_molecular_editor
概要
このアプリケーションは、化学者や学生が分子構造を容易に描き、その3次元的な形状を視覚的に確認するためのツールです。PyQt6によるモダンなGUI、RDKitによる強力な化学計算、PyVistaによる高性能な3Dレンダリングを組み合わせています。
主な機能
-
直感的な2D描画
- マウスのクリック&ドラッグで原子や結合を簡単に追加・編集
- 原子(C, N, O, Hなど)や結合(単結合、二重結合、三重結合)のツールバーからの選択
- 周期表ダイアログから任意の元素を選択可能
- Undo/Redo、選択、全選択、削除
-
テンプレートプレビューと配置
- ベンゼン環や3〜9員環のテンプレートをプレビューして配置可能
- 既存の原子や結合にスナップして配置できる
-
キーボードショートカットと操作性の改善
Space: 選択モード切替 / 選択モードで全選択1/2/3: カーソル下または選択中の結合の結合次数を変更Delete/Backspace: 選択項目の削除- 原子上でキー入力(
C,N,O,S,F,B,I,H,Shift+C=Cl,Shift+B=Br)で元素を即時切替
-
2D構造の最適化
- RDKit の
Compute2DCoordsを使った自動レイアウト(Optimize 2D)
- RDKit の
-
高品質な3D可視化
- RDKit で 3D 座標を生成し MMFF94 ベースで最適化
- PyVista / pyvistaqt によるインタラクティブな3D表示(原子は球、結合は円柱で表現)
- 3Dビューをクリックすると2Dにフォーカスを戻す動作など、操作性の改善
-
ファイル入出力
- 2D を MOL 形式で保存
- 3D を MOL / XYZ 形式で保存
- MOL/SDF の読み込み
- プロジェクトファイル(
.pmeraw)で編集状態の保存/読み込み
実行とインストール
必要ライブラリ
PyQt6, RDKit, NumPy, PyVista, pyvistaqt
インストール例
pip を使う場合:
pip install moleditpy
Note RDKit は
condaを使ってインストールすることが推奨されます。
アプリの起動
moleditpy
技術的な仕組み
-
GUI と 2D 描画 (PyQt6)
- アプリの骨格と 2D 描画キャンバスは PyQt6 の Graphics View Framework を利用しています。
QGraphicsScene上にカスタムのAtomItem(原子)とBondItem(結合)を配置し、マウス/キー入力で対話的に操作します。- テンプレートのプレビューは専用の
TemplatePreviewItemで描画されます。
-
化学計算 (RDKit)
- 2D 描画データから MOL ブロックを生成し、RDKit に渡して 3D 座標生成(
AllChem.EmbedMolecule)と最適化(AllChem.MMFFOptimizeMolecule)を実行します。 - 2D の自動レイアウト(
Compute2DCoords)にも RDKit を使用します。 - 計算は別スレッド(
QThread)で行い、GUI の応答性を維持しています。
- 2D 描画データから MOL ブロックを生成し、RDKit に渡して 3D 座標生成(
-
3D 可視化 (PyVista / pyvistaqt)
- RDKit のコンフォーマ座標から PyVista のメッシュ(球や円柱)を生成して描画します。
- ボンドの種類(単結合/二重結合/三重結合)に応じた複数円柱のレンダリングを実装しています。
ライセンス
このプロジェクトは Apache-2.0 License のもとで公開されています。詳細は LICENSE ファイルを参照してください。
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file moleditpy-0.3.2.tar.gz.
File metadata
- Download URL: moleditpy-0.3.2.tar.gz
- Upload date:
- Size: 172.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7306d4fb64139bcf0394ee187c178c4ff450b584850277f1a25efbbce15d840a
|
|
| MD5 |
520d08b66f5ee26adf5ac4674658b19f
|
|
| BLAKE2b-256 |
5266887f57cde5bbade76878ca7b41e05de99c3af35eb8f398fdec102e1c6bd4
|
File details
Details for the file moleditpy-0.3.2-py3-none-any.whl.
File metadata
- Download URL: moleditpy-0.3.2-py3-none-any.whl
- Upload date:
- Size: 169.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cca1e963370871177007a11158135a4544fdd158b93d97623f1d4c9696c7c91
|
|
| MD5 |
89cdaca8a5cf816a83a87d0009532bea
|
|
| BLAKE2b-256 |
0c65acb79d2214a05b4f89acd5c3a04b8b3a84f18694805419b61ec0457621d2
|