Skip to main content

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)
  • 高品質な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 の応答性を維持しています。
  • 3D 可視化 (PyVista / pyvistaqt)

    • RDKit のコンフォーマ座標から PyVista のメッシュ(球や円柱)を生成して描画します。
    • ボンドの種類(単結合/二重結合/三重結合)に応じた複数円柱のレンダリングを実装しています。

ライセンス

このプロジェクトは Apache-2.0 License のもとで公開されています。詳細は LICENSE ファイルを参照してください。

Project details


Release history Release notifications | RSS feed

This version

0.3.0

Download files

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

Source Distribution

moleditpy-0.3.0.tar.gz (98.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

moleditpy-0.3.0-py3-none-any.whl (95.2 kB view details)

Uploaded Python 3

File details

Details for the file moleditpy-0.3.0.tar.gz.

File metadata

  • Download URL: moleditpy-0.3.0.tar.gz
  • Upload date:
  • Size: 98.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for moleditpy-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c76481f469800b77e570921b6499a4c1e336f85d62ca8f5cde67905919ef5d58
MD5 21526c2a16df269a4923de20adeef24a
BLAKE2b-256 ff8cf65d95f2c96f09c275ee44fe5a11b9b7a8005350315c584422b6862c2fd5

See more details on using hashes here.

File details

Details for the file moleditpy-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: moleditpy-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 95.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for moleditpy-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5c315ec20911f8cff20f4f6df39361abb7039ae6e9e82623bf1f25627dd6c95e
MD5 2ce13a8cf7972fced41b70e75afa1d44
BLAKE2b-256 7430c851c483309aca063b584ffea10860f071909215b7a2ad5f337a6c1cca04

See more details on using hashes here.

Supported by

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