moleditpy 0.3.2__tar.gz → 0.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- moleditpy-0.3.4/PKG-INFO +261 -0
- moleditpy-0.3.4/README.md +237 -0
- {moleditpy-0.3.2 → moleditpy-0.3.4}/pyproject.toml +1 -1
- {moleditpy-0.3.2 → moleditpy-0.3.4}/src/moleditpy/main.py +6 -18
- moleditpy-0.3.4/src/moleditpy.egg-info/PKG-INFO +261 -0
- moleditpy-0.3.2/PKG-INFO +0 -131
- moleditpy-0.3.2/README.md +0 -107
- moleditpy-0.3.2/src/moleditpy.egg-info/PKG-INFO +0 -131
- {moleditpy-0.3.2 → moleditpy-0.3.4}/setup.cfg +0 -0
- {moleditpy-0.3.2 → moleditpy-0.3.4}/src/moleditpy/__init__.py +0 -0
- {moleditpy-0.3.2 → moleditpy-0.3.4}/src/moleditpy/assets/icon.ico +0 -0
- {moleditpy-0.3.2 → moleditpy-0.3.4}/src/moleditpy/assets/icon.png +0 -0
- {moleditpy-0.3.2 → moleditpy-0.3.4}/src/moleditpy.egg-info/SOURCES.txt +0 -0
- {moleditpy-0.3.2 → moleditpy-0.3.4}/src/moleditpy.egg-info/dependency_links.txt +0 -0
- {moleditpy-0.3.2 → moleditpy-0.3.4}/src/moleditpy.egg-info/entry_points.txt +0 -0
- {moleditpy-0.3.2 → moleditpy-0.3.4}/src/moleditpy.egg-info/requires.txt +0 -0
- {moleditpy-0.3.2 → moleditpy-0.3.4}/src/moleditpy.egg-info/top_level.txt +0 -0
moleditpy-0.3.4/PKG-INFO
ADDED
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: moleditpy
|
|
3
|
+
Version: 0.3.4
|
|
4
|
+
Summary: A program to edit molecular structures using Python.
|
|
5
|
+
Author-email: HiroYokoyama <titech.yoko.hiro@gmail.com>
|
|
6
|
+
Project-URL: Homepage, https://github.com/HiroYokoyama/python_molecular_editor
|
|
7
|
+
Project-URL: Issues, https://github.com/HiroYokoyama/python_molecular_editor/issues
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Classifier: Intended Audience :: Science/Research
|
|
11
|
+
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
17
|
+
Requires-Python: >=3.8
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
Requires-Dist: PyQt6
|
|
20
|
+
Requires-Dist: rdkit
|
|
21
|
+
Requires-Dist: numpy
|
|
22
|
+
Requires-Dist: pyvista
|
|
23
|
+
Requires-Dist: pyvistaqt
|
|
24
|
+
|
|
25
|
+
# moleditpy -- Python Molecular Editor
|
|
26
|
+
|
|
27
|
+
Pythonで構築された、クロスプラットフォームかつシンプルで直感的な分子構造エディターです。2Dでの分子描画と、3D構造可視化ができます。DFT計算ソフト用のインプット用に構造ファイルのエクスポートをサポートします。
|
|
28
|
+
|
|
29
|
+
A cross-platform, simple, and intuitive molecular structure editor built in Python. It allows 2D molecular drawing and 3D structure visualization. It supports exporting structure files for input to DFT calculation software.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
作者: HiroYokoyama
|
|
33
|
+
ライセンス: Apache-2.0
|
|
34
|
+
リポジトリ: [https://github.com/HiroYokoyama/python\_molecular\_editor](https://github.com/HiroYokoyama/python_molecular_editor)
|
|
35
|
+
|
|
36
|
+
-----
|
|
37
|
+
|
|
38
|
+
## 概要
|
|
39
|
+
|
|
40
|
+
このアプリケーションは、分子構造を容易に描き、その3次元的な形状を視覚的に確認するためのツールです。**PyQt6**によるモダンなGUI、**RDKit**による強力な化学計算、**PyVista**による高性能な3Dレンダリングを組み合わせています。
|
|
41
|
+
|
|
42
|
+
-----
|
|
43
|
+
|
|
44
|
+
## 主な機能
|
|
45
|
+
|
|
46
|
+
### 1\. 2D 描画と編集
|
|
47
|
+
|
|
48
|
+
* **直感的な操作:** マウスのクリック&ドラッグで原子や結合を簡単に追加・編集できます。
|
|
49
|
+
* **テンプレート配置の改良:** ベンゼン環や3〜9員環のテンプレートをプレビューして配置可能。既存の結合にフューズする際、**ベンゼン環の二重結合配置を自動調整する高度なロジック**を搭載しました。
|
|
50
|
+
* **電荷・ラジカル操作:** 原子をクリックするか、キーボードショートカット (`+`/`-`/`.`) で、形式電荷やラジカルを簡単に設定できます。
|
|
51
|
+
* **周期表からの選択:** 周期表ダイアログから任意の元素を選択可能です。
|
|
52
|
+
* **選択操作の充実:**
|
|
53
|
+
* `Cut` (`Ctrl+X`), `Copy` (`Ctrl+C`), `Paste` (`Ctrl+V`) に対応し、分子フラグメントのクリップボード操作が可能です。
|
|
54
|
+
* `Space`: 選択モード切替 / 選択モードで全選択。
|
|
55
|
+
* `Delete` / `Backspace`: 選択項目の削除。
|
|
56
|
+
|
|
57
|
+
### 2\. キーボードショートカット
|
|
58
|
+
|
|
59
|
+
| キー | 操作 | 補足 |
|
|
60
|
+
| :--- | :--- | :--- |
|
|
61
|
+
| `1`/`2`/`3` | 結合次数を変更 | 単結合/二重結合/三重結合 |
|
|
62
|
+
| `W`/`D` | 立体化学結合に変更 | Wedge / Dash 結合 |
|
|
63
|
+
| `.` | ラジカルをトグル | 0 → 1 → 2 → 0 |
|
|
64
|
+
| `+`/`-` | 電荷を増減 | 形式電荷の変更 |
|
|
65
|
+
| `C`, `N`, `O` など | 原子記号を変更 | カーソル下または選択中の原子に適用 |
|
|
66
|
+
| `4` | ベンゼン環の配置 | カーソル下の原子/結合にワンショットで配置 |
|
|
67
|
+
| `Ctrl+K` | 2D最適化を実行 | |
|
|
68
|
+
| `Ctrl+L` | 3D変換を実行 | |
|
|
69
|
+
|
|
70
|
+
### 3\. 2D構造の最適化
|
|
71
|
+
|
|
72
|
+
* RDKit の `Compute2DCoords` を使った自動レイアウト(**Optimize 2D**)を実行します。
|
|
73
|
+
* 完全に重なった原子グループ(結合していないフラグメント同士など)を検出し、**自動で分離・解消するロジック**を実装しました。
|
|
74
|
+
|
|
75
|
+
### 4\. 高品質な3D可視化と分析
|
|
76
|
+
|
|
77
|
+
* **3D変換:** RDKit で 3D 座標を生成し MMFF94 ベースで最適化(**Convert to 3D**)します。
|
|
78
|
+
* **インタラクティブ表示:** PyVista / pyvistaqt によるインタラクティブな3D表示(Ball & Stick / CPK スタイル)を提供します。
|
|
79
|
+
* **キラルラベル表示:** 3D変換後、キラル中心に R/S ラベルを自動で付与し、**3Dビュー**に表示します。
|
|
80
|
+
* **分子分析ウィンドウ:** 分子量、SMILES、LogP、TPSAなど、RDKitベースの**主要な分子特性を一覧表示**する専用ウィンドウがあります。
|
|
81
|
+
|
|
82
|
+
### 5\. ファイル入出力
|
|
83
|
+
|
|
84
|
+
* **プロジェクトファイル (.pmeraw):** 2D描画データと3D構造、電荷、ラジカル、キラルラベルの状態など、編集状態を完全に保存/読み込みできます。
|
|
85
|
+
* 2D を MOL 形式で保存。
|
|
86
|
+
* 3D を MOL / XYZ 形式で保存。
|
|
87
|
+
* MOL/SDF の読み込みに対応しています。
|
|
88
|
+
|
|
89
|
+
-----
|
|
90
|
+
|
|
91
|
+
## 実行とインストール
|
|
92
|
+
|
|
93
|
+
#### 必要ライブラリ
|
|
94
|
+
|
|
95
|
+
`PyQt6`, `RDKit`, `NumPy`, `PyVista`, `pyvistaqt`
|
|
96
|
+
|
|
97
|
+
#### インストール例
|
|
98
|
+
|
|
99
|
+
**pip を使う場合:**
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
pip install moleditpy
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
> **Note**
|
|
106
|
+
> RDKit は特に科学計算ディストリビューションである `conda` を使ってインストールすることが推奨されます。
|
|
107
|
+
|
|
108
|
+
#### アプリの起動
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
moleditpy
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
-----
|
|
115
|
+
|
|
116
|
+
## Windows ショートカットとファイル関連付けガイド
|
|
117
|
+
|
|
118
|
+
Windows環境でプロジェクトファイル(`.pmeraw`)をダブルクリックで開いたり、アイコン付きのショートカットからアプリケーションを起動したりするための詳細な設定手順です。
|
|
119
|
+
|
|
120
|
+
### 1\. 実行ファイルとアイコンのパス
|
|
121
|
+
|
|
122
|
+
| 項目 | 詳細 |
|
|
123
|
+
| :--- | :--- |
|
|
124
|
+
| **実行ファイル (Target Application)** | `C:\Users\%USERNAME%\AppData\Local\Programs\Python\PythonXX\Scripts\moleditpy.exe` |
|
|
125
|
+
| **関連付けたい拡張子** | `.pmeraw` |
|
|
126
|
+
| **アイコンファイルのパス (Icon)** | `C:\Users\%USERNAME%\AppData\Local\Programs\Python\PythonXX\Lib\site-packages\moleditpy\assets\icon.ico` |
|
|
127
|
+
|
|
128
|
+
> **注意:** `%USERNAME%` はお使いのユーザー名、`PythonXX` はインストールされているPythonのバージョンディレクトリ名(例: `Python313`)に置き換えてください。
|
|
129
|
+
|
|
130
|
+
### 2\. ファイルの関連付け手順 (.pmeraw をダブルクリックで開く)
|
|
131
|
+
|
|
132
|
+
`.pmeraw` ファイルを `moleditpy.exe` で開けるようにする手順です。
|
|
133
|
+
|
|
134
|
+
1. **任意の `.pmeraw` ファイルを見つける:** エクスプローラーで、関連付けを行いたいファイル(例: `sample.pmeraw`)を**右クリック**します。
|
|
135
|
+
2. **関連付けの変更:** コンテキストメニューから\*\*「プロパティ」**を選択し、「全般」タブの「ファイルの種類」の横にある**「変更...」\*\*ボタンをクリックします。
|
|
136
|
+
3. **プログラムの選択:** 「このファイルを開く方法を選んでください」というウィンドウが表示されたら、「その他のアプリ」→\*\*「PCでアプリを探す」\*\*を選択します。
|
|
137
|
+
4. **実行ファイルの指定:** 上記のパス(プレースホルダーを置き換えたもの)にある **`moleditpy.exe`** を指定し、「開く」をクリックして完了です。
|
|
138
|
+
|
|
139
|
+
> **補足:** カスタムアイコンをシステム全体のファイル関連付けに適用するには、通常、レジストリを編集する必要があります。レジストリ操作は上級者向けであり、慎重に行ってください。
|
|
140
|
+
|
|
141
|
+
### 3\. デスクトップショートカットの作成手順
|
|
142
|
+
|
|
143
|
+
アプリケーションを起動するためのアイコン付きショートカットを作成します。
|
|
144
|
+
|
|
145
|
+
1. **新規ショートカットの作成:** デスクトップなどの任意の場所を右クリックし、「新規作成」→\*\*「ショートカット」\*\*を選択します。
|
|
146
|
+
2. **実行ファイルのパスを入力:** 「項目の場所を入力してください」に、上記の実行ファイルのパスを入力し、「次へ」をクリックします。
|
|
147
|
+
3. **名前を指定:** ショートカットに任意の名前(例: `moleditpy`)を付けて、「完了」をクリックします。
|
|
148
|
+
4. **アイコンの変更:**
|
|
149
|
+
* 作成されたショートカットを右クリックし、\*\*「プロパティ」\*\*を選択します。
|
|
150
|
+
* 「ショートカット」タブの\*\*「アイコンの変更...」\*\*ボタンをクリックします。
|
|
151
|
+
* 上記のアイコンファイルのパスを参照して `icon.ico` を選択します。
|
|
152
|
+
* 「OK」→「適用」→「OK」をクリックして完了です。
|
|
153
|
+
|
|
154
|
+
### 4\. ショートカットをスタートメニューに配置する方法
|
|
155
|
+
|
|
156
|
+
作成したショートカットをWindowsのスタートメニューのプログラム一覧に表示するには、以下の手順でフォルダに配置します。
|
|
157
|
+
|
|
158
|
+
1. **スタートメニューフォルダのパスを確認:** エクスプローラーのアドレスバーに以下のいずれかのパスを入力し、Enterキーを押します。
|
|
159
|
+
* **現在のユーザー専用 (推奨):** `%APPDATA%\Microsoft\Windows\Start Menu\Programs`
|
|
160
|
+
* **すべてのユーザー共通 (管理者権限が必要):** `%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs`
|
|
161
|
+
2. **ショートカットのコピーまたは移動:** 上記で開いたスタートメニューフォルダに、作成したショートカット(例: デスクトップ上の `moleditpy` ショートカット)を**コピーまたは移動**します。(Ctrlキーを押しながらドラッグするとコピーされます。)
|
|
162
|
+
3. **確認:** スタートボタンをクリックし、プログラム一覧からショートカットに付けた名前が追加されていることを確認してください。
|
|
163
|
+
|
|
164
|
+
-----
|
|
165
|
+
|
|
166
|
+
## macOS向け:Python CLIアプリをAutomator経由で.app化する方法(moleditpy)
|
|
167
|
+
|
|
168
|
+
この手順では、`pip install moleditpy` でインストールしたPythonアプリをmacOS上で\*\*.appアプリケーション\*\*として使えるようにし、独自アイコンを設定します。
|
|
169
|
+
|
|
170
|
+
### 1\. バイナリの場所を確認
|
|
171
|
+
|
|
172
|
+
以下のようなパスに実行ファイル(バイナリ)が生成されます:
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
/Users/<username>/Library/Python/<python_version>/bin/moleditpy
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### 2\. Automatorで新規アプリケーションを作成
|
|
179
|
+
|
|
180
|
+
1. **Automator** を開きます。
|
|
181
|
+
2. **「新規書類」** → **「アプリケーション」** を選択します。
|
|
182
|
+
3. 左の一覧から「ユーティリティ」→\*\*「シェルスクリプトを実行」\*\* を追加します。
|
|
183
|
+
|
|
184
|
+
### 3\. スクリプトを設定
|
|
185
|
+
|
|
186
|
+
スクリプト欄に以下を入力します。`"$@"` は、ドラッグ&ドロップされたファイルを引数として渡すためのものです。
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
#!/bin/bash
|
|
190
|
+
/Users/<username>/Library/Python/<python_version>/bin/moleditpy "$@"
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### 4\. アプリとして保存
|
|
194
|
+
|
|
195
|
+
1. メニューから\*\*「ファイル」\*\* → **「保存」** を選択します。
|
|
196
|
+
2. 名前を **`moleditpy.app`** にします。
|
|
197
|
+
3. 保存場所は一時的にデスクトップなど任意で構いません。
|
|
198
|
+
|
|
199
|
+
### 5\. アプリケーションフォルダーへ移動
|
|
200
|
+
|
|
201
|
+
保存後、作成したアプリをシステム標準のアプリケーションフォルダーへコピーします。
|
|
202
|
+
|
|
203
|
+
**Finderからコピーする場合**
|
|
204
|
+
|
|
205
|
+
1. Finderで `moleditpy.app` を選択し、`⌘ + C` でコピーします。
|
|
206
|
+
2. Finderメニューの「移動」→\*\*「アプリケーション」\*\* を開きます。
|
|
207
|
+
3. `⌘ + V` で貼り付けます。
|
|
208
|
+
|
|
209
|
+
**ターミナルからコピーする場合**
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
sudo cp -R ~/Desktop/moleditpy.app /Applications/
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### 6\. アイコンを設定
|
|
216
|
+
|
|
217
|
+
アイコン画像の場所:
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
/Users/<username>/Library/Python/<python_version>/lib/python<python_version>/site-packages/moleditpy/assets/icon.png
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
**アイコン設定手順(コピペ方式)**
|
|
224
|
+
|
|
225
|
+
1. Finderで上記の `icon.png` を開きます。
|
|
226
|
+
2. 「プレビュー」で画像を開いた状態で `⌘ + A` で**全選択**、`⌘ + C` で**コピー**します。
|
|
227
|
+
3. Finderで `/Applications` フォルダー内の `moleditpy.app` を選択 → `⌘ + I`(情報を見る)を押します。
|
|
228
|
+
4. 左上の小さいアイコンをクリック(枠が出る) → `⌘ + V` で**貼り付け**ます。
|
|
229
|
+
これでアプリのアイコンが変更されます。
|
|
230
|
+
|
|
231
|
+
### 7\. 実行権限を確認(必要な場合)
|
|
232
|
+
|
|
233
|
+
起動できない場合は、以下を実行してください。
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
chmod +x /Users/<username>/Library/Python/<python_version>/bin/moleditpy
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### 8\. 完了
|
|
240
|
+
|
|
241
|
+
これで `/Applications` にインストールされた **`moleditpy.app`** をダブルクリックするだけでPythonアプリが実行できます。
|
|
242
|
+
|
|
243
|
+
-----
|
|
244
|
+
|
|
245
|
+
## 技術的な仕組み
|
|
246
|
+
|
|
247
|
+
* **GUI と 2D 描画 (PyQt6):**
|
|
248
|
+
* `QGraphicsScene` 上にカスタムの `AtomItem`(原子)と `BondItem`(結合)を配置し、対話的に操作します。
|
|
249
|
+
* Undo/Redo機能は、アプリケーションの状態を丸ごと `pickle` でシリアライズしてスタックに保存することで実現しています。
|
|
250
|
+
* **化学計算 (RDKit):**
|
|
251
|
+
* 2D データから RDKit 分子オブジェクトを生成し、3D 座標生成(`AllChem.EmbedMolecule`)や分子特性計算を実行します。
|
|
252
|
+
* 計算は別スレッド(`QThread`)で行い、GUI の応答性を維持しています。
|
|
253
|
+
* **3D 可視化 (PyVista / pyvistaqt):**
|
|
254
|
+
* RDKit のコンフォーマ座標から PyVista のメッシュ(球や円柱)を生成して描画します。CPKカラーや3D結合のマルチレンダリングに対応しています。
|
|
255
|
+
|
|
256
|
+
-----
|
|
257
|
+
|
|
258
|
+
## ライセンス
|
|
259
|
+
|
|
260
|
+
このプロジェクトは **Apache-2.0 License** のもとで公開されています。詳細は `LICENSE` ファイルを参照してください。
|
|
261
|
+
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
# moleditpy -- Python Molecular Editor
|
|
2
|
+
|
|
3
|
+
Pythonで構築された、クロスプラットフォームかつシンプルで直感的な分子構造エディターです。2Dでの分子描画と、3D構造可視化ができます。DFT計算ソフト用のインプット用に構造ファイルのエクスポートをサポートします。
|
|
4
|
+
|
|
5
|
+
A cross-platform, simple, and intuitive molecular structure editor built in Python. It allows 2D molecular drawing and 3D structure visualization. It supports exporting structure files for input to DFT calculation software.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
作者: HiroYokoyama
|
|
9
|
+
ライセンス: Apache-2.0
|
|
10
|
+
リポジトリ: [https://github.com/HiroYokoyama/python\_molecular\_editor](https://github.com/HiroYokoyama/python_molecular_editor)
|
|
11
|
+
|
|
12
|
+
-----
|
|
13
|
+
|
|
14
|
+
## 概要
|
|
15
|
+
|
|
16
|
+
このアプリケーションは、分子構造を容易に描き、その3次元的な形状を視覚的に確認するためのツールです。**PyQt6**によるモダンなGUI、**RDKit**による強力な化学計算、**PyVista**による高性能な3Dレンダリングを組み合わせています。
|
|
17
|
+
|
|
18
|
+
-----
|
|
19
|
+
|
|
20
|
+
## 主な機能
|
|
21
|
+
|
|
22
|
+
### 1\. 2D 描画と編集
|
|
23
|
+
|
|
24
|
+
* **直感的な操作:** マウスのクリック&ドラッグで原子や結合を簡単に追加・編集できます。
|
|
25
|
+
* **テンプレート配置の改良:** ベンゼン環や3〜9員環のテンプレートをプレビューして配置可能。既存の結合にフューズする際、**ベンゼン環の二重結合配置を自動調整する高度なロジック**を搭載しました。
|
|
26
|
+
* **電荷・ラジカル操作:** 原子をクリックするか、キーボードショートカット (`+`/`-`/`.`) で、形式電荷やラジカルを簡単に設定できます。
|
|
27
|
+
* **周期表からの選択:** 周期表ダイアログから任意の元素を選択可能です。
|
|
28
|
+
* **選択操作の充実:**
|
|
29
|
+
* `Cut` (`Ctrl+X`), `Copy` (`Ctrl+C`), `Paste` (`Ctrl+V`) に対応し、分子フラグメントのクリップボード操作が可能です。
|
|
30
|
+
* `Space`: 選択モード切替 / 選択モードで全選択。
|
|
31
|
+
* `Delete` / `Backspace`: 選択項目の削除。
|
|
32
|
+
|
|
33
|
+
### 2\. キーボードショートカット
|
|
34
|
+
|
|
35
|
+
| キー | 操作 | 補足 |
|
|
36
|
+
| :--- | :--- | :--- |
|
|
37
|
+
| `1`/`2`/`3` | 結合次数を変更 | 単結合/二重結合/三重結合 |
|
|
38
|
+
| `W`/`D` | 立体化学結合に変更 | Wedge / Dash 結合 |
|
|
39
|
+
| `.` | ラジカルをトグル | 0 → 1 → 2 → 0 |
|
|
40
|
+
| `+`/`-` | 電荷を増減 | 形式電荷の変更 |
|
|
41
|
+
| `C`, `N`, `O` など | 原子記号を変更 | カーソル下または選択中の原子に適用 |
|
|
42
|
+
| `4` | ベンゼン環の配置 | カーソル下の原子/結合にワンショットで配置 |
|
|
43
|
+
| `Ctrl+K` | 2D最適化を実行 | |
|
|
44
|
+
| `Ctrl+L` | 3D変換を実行 | |
|
|
45
|
+
|
|
46
|
+
### 3\. 2D構造の最適化
|
|
47
|
+
|
|
48
|
+
* RDKit の `Compute2DCoords` を使った自動レイアウト(**Optimize 2D**)を実行します。
|
|
49
|
+
* 完全に重なった原子グループ(結合していないフラグメント同士など)を検出し、**自動で分離・解消するロジック**を実装しました。
|
|
50
|
+
|
|
51
|
+
### 4\. 高品質な3D可視化と分析
|
|
52
|
+
|
|
53
|
+
* **3D変換:** RDKit で 3D 座標を生成し MMFF94 ベースで最適化(**Convert to 3D**)します。
|
|
54
|
+
* **インタラクティブ表示:** PyVista / pyvistaqt によるインタラクティブな3D表示(Ball & Stick / CPK スタイル)を提供します。
|
|
55
|
+
* **キラルラベル表示:** 3D変換後、キラル中心に R/S ラベルを自動で付与し、**3Dビュー**に表示します。
|
|
56
|
+
* **分子分析ウィンドウ:** 分子量、SMILES、LogP、TPSAなど、RDKitベースの**主要な分子特性を一覧表示**する専用ウィンドウがあります。
|
|
57
|
+
|
|
58
|
+
### 5\. ファイル入出力
|
|
59
|
+
|
|
60
|
+
* **プロジェクトファイル (.pmeraw):** 2D描画データと3D構造、電荷、ラジカル、キラルラベルの状態など、編集状態を完全に保存/読み込みできます。
|
|
61
|
+
* 2D を MOL 形式で保存。
|
|
62
|
+
* 3D を MOL / XYZ 形式で保存。
|
|
63
|
+
* MOL/SDF の読み込みに対応しています。
|
|
64
|
+
|
|
65
|
+
-----
|
|
66
|
+
|
|
67
|
+
## 実行とインストール
|
|
68
|
+
|
|
69
|
+
#### 必要ライブラリ
|
|
70
|
+
|
|
71
|
+
`PyQt6`, `RDKit`, `NumPy`, `PyVista`, `pyvistaqt`
|
|
72
|
+
|
|
73
|
+
#### インストール例
|
|
74
|
+
|
|
75
|
+
**pip を使う場合:**
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
pip install moleditpy
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
> **Note**
|
|
82
|
+
> RDKit は特に科学計算ディストリビューションである `conda` を使ってインストールすることが推奨されます。
|
|
83
|
+
|
|
84
|
+
#### アプリの起動
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
moleditpy
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
-----
|
|
91
|
+
|
|
92
|
+
## Windows ショートカットとファイル関連付けガイド
|
|
93
|
+
|
|
94
|
+
Windows環境でプロジェクトファイル(`.pmeraw`)をダブルクリックで開いたり、アイコン付きのショートカットからアプリケーションを起動したりするための詳細な設定手順です。
|
|
95
|
+
|
|
96
|
+
### 1\. 実行ファイルとアイコンのパス
|
|
97
|
+
|
|
98
|
+
| 項目 | 詳細 |
|
|
99
|
+
| :--- | :--- |
|
|
100
|
+
| **実行ファイル (Target Application)** | `C:\Users\%USERNAME%\AppData\Local\Programs\Python\PythonXX\Scripts\moleditpy.exe` |
|
|
101
|
+
| **関連付けたい拡張子** | `.pmeraw` |
|
|
102
|
+
| **アイコンファイルのパス (Icon)** | `C:\Users\%USERNAME%\AppData\Local\Programs\Python\PythonXX\Lib\site-packages\moleditpy\assets\icon.ico` |
|
|
103
|
+
|
|
104
|
+
> **注意:** `%USERNAME%` はお使いのユーザー名、`PythonXX` はインストールされているPythonのバージョンディレクトリ名(例: `Python313`)に置き換えてください。
|
|
105
|
+
|
|
106
|
+
### 2\. ファイルの関連付け手順 (.pmeraw をダブルクリックで開く)
|
|
107
|
+
|
|
108
|
+
`.pmeraw` ファイルを `moleditpy.exe` で開けるようにする手順です。
|
|
109
|
+
|
|
110
|
+
1. **任意の `.pmeraw` ファイルを見つける:** エクスプローラーで、関連付けを行いたいファイル(例: `sample.pmeraw`)を**右クリック**します。
|
|
111
|
+
2. **関連付けの変更:** コンテキストメニューから\*\*「プロパティ」**を選択し、「全般」タブの「ファイルの種類」の横にある**「変更...」\*\*ボタンをクリックします。
|
|
112
|
+
3. **プログラムの選択:** 「このファイルを開く方法を選んでください」というウィンドウが表示されたら、「その他のアプリ」→\*\*「PCでアプリを探す」\*\*を選択します。
|
|
113
|
+
4. **実行ファイルの指定:** 上記のパス(プレースホルダーを置き換えたもの)にある **`moleditpy.exe`** を指定し、「開く」をクリックして完了です。
|
|
114
|
+
|
|
115
|
+
> **補足:** カスタムアイコンをシステム全体のファイル関連付けに適用するには、通常、レジストリを編集する必要があります。レジストリ操作は上級者向けであり、慎重に行ってください。
|
|
116
|
+
|
|
117
|
+
### 3\. デスクトップショートカットの作成手順
|
|
118
|
+
|
|
119
|
+
アプリケーションを起動するためのアイコン付きショートカットを作成します。
|
|
120
|
+
|
|
121
|
+
1. **新規ショートカットの作成:** デスクトップなどの任意の場所を右クリックし、「新規作成」→\*\*「ショートカット」\*\*を選択します。
|
|
122
|
+
2. **実行ファイルのパスを入力:** 「項目の場所を入力してください」に、上記の実行ファイルのパスを入力し、「次へ」をクリックします。
|
|
123
|
+
3. **名前を指定:** ショートカットに任意の名前(例: `moleditpy`)を付けて、「完了」をクリックします。
|
|
124
|
+
4. **アイコンの変更:**
|
|
125
|
+
* 作成されたショートカットを右クリックし、\*\*「プロパティ」\*\*を選択します。
|
|
126
|
+
* 「ショートカット」タブの\*\*「アイコンの変更...」\*\*ボタンをクリックします。
|
|
127
|
+
* 上記のアイコンファイルのパスを参照して `icon.ico` を選択します。
|
|
128
|
+
* 「OK」→「適用」→「OK」をクリックして完了です。
|
|
129
|
+
|
|
130
|
+
### 4\. ショートカットをスタートメニューに配置する方法
|
|
131
|
+
|
|
132
|
+
作成したショートカットをWindowsのスタートメニューのプログラム一覧に表示するには、以下の手順でフォルダに配置します。
|
|
133
|
+
|
|
134
|
+
1. **スタートメニューフォルダのパスを確認:** エクスプローラーのアドレスバーに以下のいずれかのパスを入力し、Enterキーを押します。
|
|
135
|
+
* **現在のユーザー専用 (推奨):** `%APPDATA%\Microsoft\Windows\Start Menu\Programs`
|
|
136
|
+
* **すべてのユーザー共通 (管理者権限が必要):** `%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs`
|
|
137
|
+
2. **ショートカットのコピーまたは移動:** 上記で開いたスタートメニューフォルダに、作成したショートカット(例: デスクトップ上の `moleditpy` ショートカット)を**コピーまたは移動**します。(Ctrlキーを押しながらドラッグするとコピーされます。)
|
|
138
|
+
3. **確認:** スタートボタンをクリックし、プログラム一覧からショートカットに付けた名前が追加されていることを確認してください。
|
|
139
|
+
|
|
140
|
+
-----
|
|
141
|
+
|
|
142
|
+
## macOS向け:Python CLIアプリをAutomator経由で.app化する方法(moleditpy)
|
|
143
|
+
|
|
144
|
+
この手順では、`pip install moleditpy` でインストールしたPythonアプリをmacOS上で\*\*.appアプリケーション\*\*として使えるようにし、独自アイコンを設定します。
|
|
145
|
+
|
|
146
|
+
### 1\. バイナリの場所を確認
|
|
147
|
+
|
|
148
|
+
以下のようなパスに実行ファイル(バイナリ)が生成されます:
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
/Users/<username>/Library/Python/<python_version>/bin/moleditpy
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### 2\. Automatorで新規アプリケーションを作成
|
|
155
|
+
|
|
156
|
+
1. **Automator** を開きます。
|
|
157
|
+
2. **「新規書類」** → **「アプリケーション」** を選択します。
|
|
158
|
+
3. 左の一覧から「ユーティリティ」→\*\*「シェルスクリプトを実行」\*\* を追加します。
|
|
159
|
+
|
|
160
|
+
### 3\. スクリプトを設定
|
|
161
|
+
|
|
162
|
+
スクリプト欄に以下を入力します。`"$@"` は、ドラッグ&ドロップされたファイルを引数として渡すためのものです。
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
#!/bin/bash
|
|
166
|
+
/Users/<username>/Library/Python/<python_version>/bin/moleditpy "$@"
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### 4\. アプリとして保存
|
|
170
|
+
|
|
171
|
+
1. メニューから\*\*「ファイル」\*\* → **「保存」** を選択します。
|
|
172
|
+
2. 名前を **`moleditpy.app`** にします。
|
|
173
|
+
3. 保存場所は一時的にデスクトップなど任意で構いません。
|
|
174
|
+
|
|
175
|
+
### 5\. アプリケーションフォルダーへ移動
|
|
176
|
+
|
|
177
|
+
保存後、作成したアプリをシステム標準のアプリケーションフォルダーへコピーします。
|
|
178
|
+
|
|
179
|
+
**Finderからコピーする場合**
|
|
180
|
+
|
|
181
|
+
1. Finderで `moleditpy.app` を選択し、`⌘ + C` でコピーします。
|
|
182
|
+
2. Finderメニューの「移動」→\*\*「アプリケーション」\*\* を開きます。
|
|
183
|
+
3. `⌘ + V` で貼り付けます。
|
|
184
|
+
|
|
185
|
+
**ターミナルからコピーする場合**
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
sudo cp -R ~/Desktop/moleditpy.app /Applications/
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### 6\. アイコンを設定
|
|
192
|
+
|
|
193
|
+
アイコン画像の場所:
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
/Users/<username>/Library/Python/<python_version>/lib/python<python_version>/site-packages/moleditpy/assets/icon.png
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**アイコン設定手順(コピペ方式)**
|
|
200
|
+
|
|
201
|
+
1. Finderで上記の `icon.png` を開きます。
|
|
202
|
+
2. 「プレビュー」で画像を開いた状態で `⌘ + A` で**全選択**、`⌘ + C` で**コピー**します。
|
|
203
|
+
3. Finderで `/Applications` フォルダー内の `moleditpy.app` を選択 → `⌘ + I`(情報を見る)を押します。
|
|
204
|
+
4. 左上の小さいアイコンをクリック(枠が出る) → `⌘ + V` で**貼り付け**ます。
|
|
205
|
+
これでアプリのアイコンが変更されます。
|
|
206
|
+
|
|
207
|
+
### 7\. 実行権限を確認(必要な場合)
|
|
208
|
+
|
|
209
|
+
起動できない場合は、以下を実行してください。
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
chmod +x /Users/<username>/Library/Python/<python_version>/bin/moleditpy
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### 8\. 完了
|
|
216
|
+
|
|
217
|
+
これで `/Applications` にインストールされた **`moleditpy.app`** をダブルクリックするだけでPythonアプリが実行できます。
|
|
218
|
+
|
|
219
|
+
-----
|
|
220
|
+
|
|
221
|
+
## 技術的な仕組み
|
|
222
|
+
|
|
223
|
+
* **GUI と 2D 描画 (PyQt6):**
|
|
224
|
+
* `QGraphicsScene` 上にカスタムの `AtomItem`(原子)と `BondItem`(結合)を配置し、対話的に操作します。
|
|
225
|
+
* Undo/Redo機能は、アプリケーションの状態を丸ごと `pickle` でシリアライズしてスタックに保存することで実現しています。
|
|
226
|
+
* **化学計算 (RDKit):**
|
|
227
|
+
* 2D データから RDKit 分子オブジェクトを生成し、3D 座標生成(`AllChem.EmbedMolecule`)や分子特性計算を実行します。
|
|
228
|
+
* 計算は別スレッド(`QThread`)で行い、GUI の応答性を維持しています。
|
|
229
|
+
* **3D 可視化 (PyVista / pyvistaqt):**
|
|
230
|
+
* RDKit のコンフォーマ座標から PyVista のメッシュ(球や円柱)を生成して描画します。CPKカラーや3D結合のマルチレンダリングに対応しています。
|
|
231
|
+
|
|
232
|
+
-----
|
|
233
|
+
|
|
234
|
+
## ライセンス
|
|
235
|
+
|
|
236
|
+
このプロジェクトは **Apache-2.0 License** のもとで公開されています。詳細は `LICENSE` ファイルを参照してください。
|
|
237
|
+
|
|
@@ -2233,18 +2233,6 @@ class MainWindow(QMainWindow):
|
|
|
2233
2233
|
if atom_data['item']: atom_data['item'].update_style()
|
|
2234
2234
|
self.scene.update()
|
|
2235
2235
|
|
|
2236
|
-
if 'mol_3d' in loaded_data:
|
|
2237
|
-
try:
|
|
2238
|
-
self.current_mol = Chem.Mol(loaded_data['mol_3d'])
|
|
2239
|
-
self.draw_molecule_3d(self.current_mol)
|
|
2240
|
-
self.analysis_action.setEnabled(True)
|
|
2241
|
-
except Exception as e:
|
|
2242
|
-
self.statusBar().showMessage(f"Could not load 3D model from project: {e}")
|
|
2243
|
-
self.current_mol = None; self.analysis_action.setEnabled(False)
|
|
2244
|
-
else:
|
|
2245
|
-
self.current_mol = None; self.plotter.clear(); self.analysis_action.setEnabled(False)
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
2236
|
if 'mol_3d' in loaded_data:
|
|
2249
2237
|
try:
|
|
2250
2238
|
self.current_mol = Chem.Mol(loaded_data['mol_3d'])
|
|
@@ -2284,7 +2272,6 @@ class MainWindow(QMainWindow):
|
|
|
2284
2272
|
self.redo_stack.clear()
|
|
2285
2273
|
|
|
2286
2274
|
self.update_realtime_info()
|
|
2287
|
-
self.update_chiral_labels()
|
|
2288
2275
|
self.update_undo_redo_actions()
|
|
2289
2276
|
|
|
2290
2277
|
def reset_undo_stack(self):
|
|
@@ -2299,7 +2286,6 @@ class MainWindow(QMainWindow):
|
|
|
2299
2286
|
self.set_state_from_data(state)
|
|
2300
2287
|
self.update_undo_redo_actions()
|
|
2301
2288
|
self.update_realtime_info()
|
|
2302
|
-
self.update_chiral_labels()
|
|
2303
2289
|
self.view_2d.setFocus()
|
|
2304
2290
|
|
|
2305
2291
|
def redo(self):
|
|
@@ -2809,14 +2795,16 @@ class MainWindow(QMainWindow):
|
|
|
2809
2795
|
except Exception as e:
|
|
2810
2796
|
self.statusBar().showMessage(f"3D chiral label drawing error: {e}")
|
|
2811
2797
|
|
|
2812
|
-
self.plotter.reset_camera()
|
|
2813
|
-
|
|
2814
2798
|
|
|
2815
2799
|
def toggle_chiral_labels_display(self, checked):
|
|
2816
2800
|
"""Viewメニューのアクションに応じてキラルラベル表示を切り替える"""
|
|
2817
2801
|
self.show_chiral_labels = checked
|
|
2818
|
-
|
|
2819
|
-
|
|
2802
|
+
if checked:
|
|
2803
|
+
draw_molecule_3d()
|
|
2804
|
+
self.statusBar().showMessage("Chiral labels: will be (re)computed after Convert→3D.")
|
|
2805
|
+
else:
|
|
2806
|
+
draw_molecule_3d()
|
|
2807
|
+
self.statusBar().showMessage("Chiral labels disabled.")
|
|
2820
2808
|
|
|
2821
2809
|
|
|
2822
2810
|
def update_chiral_labels(self):
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: moleditpy
|
|
3
|
+
Version: 0.3.4
|
|
4
|
+
Summary: A program to edit molecular structures using Python.
|
|
5
|
+
Author-email: HiroYokoyama <titech.yoko.hiro@gmail.com>
|
|
6
|
+
Project-URL: Homepage, https://github.com/HiroYokoyama/python_molecular_editor
|
|
7
|
+
Project-URL: Issues, https://github.com/HiroYokoyama/python_molecular_editor/issues
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Classifier: Intended Audience :: Science/Research
|
|
11
|
+
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
17
|
+
Requires-Python: >=3.8
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
Requires-Dist: PyQt6
|
|
20
|
+
Requires-Dist: rdkit
|
|
21
|
+
Requires-Dist: numpy
|
|
22
|
+
Requires-Dist: pyvista
|
|
23
|
+
Requires-Dist: pyvistaqt
|
|
24
|
+
|
|
25
|
+
# moleditpy -- Python Molecular Editor
|
|
26
|
+
|
|
27
|
+
Pythonで構築された、クロスプラットフォームかつシンプルで直感的な分子構造エディターです。2Dでの分子描画と、3D構造可視化ができます。DFT計算ソフト用のインプット用に構造ファイルのエクスポートをサポートします。
|
|
28
|
+
|
|
29
|
+
A cross-platform, simple, and intuitive molecular structure editor built in Python. It allows 2D molecular drawing and 3D structure visualization. It supports exporting structure files for input to DFT calculation software.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
作者: HiroYokoyama
|
|
33
|
+
ライセンス: Apache-2.0
|
|
34
|
+
リポジトリ: [https://github.com/HiroYokoyama/python\_molecular\_editor](https://github.com/HiroYokoyama/python_molecular_editor)
|
|
35
|
+
|
|
36
|
+
-----
|
|
37
|
+
|
|
38
|
+
## 概要
|
|
39
|
+
|
|
40
|
+
このアプリケーションは、分子構造を容易に描き、その3次元的な形状を視覚的に確認するためのツールです。**PyQt6**によるモダンなGUI、**RDKit**による強力な化学計算、**PyVista**による高性能な3Dレンダリングを組み合わせています。
|
|
41
|
+
|
|
42
|
+
-----
|
|
43
|
+
|
|
44
|
+
## 主な機能
|
|
45
|
+
|
|
46
|
+
### 1\. 2D 描画と編集
|
|
47
|
+
|
|
48
|
+
* **直感的な操作:** マウスのクリック&ドラッグで原子や結合を簡単に追加・編集できます。
|
|
49
|
+
* **テンプレート配置の改良:** ベンゼン環や3〜9員環のテンプレートをプレビューして配置可能。既存の結合にフューズする際、**ベンゼン環の二重結合配置を自動調整する高度なロジック**を搭載しました。
|
|
50
|
+
* **電荷・ラジカル操作:** 原子をクリックするか、キーボードショートカット (`+`/`-`/`.`) で、形式電荷やラジカルを簡単に設定できます。
|
|
51
|
+
* **周期表からの選択:** 周期表ダイアログから任意の元素を選択可能です。
|
|
52
|
+
* **選択操作の充実:**
|
|
53
|
+
* `Cut` (`Ctrl+X`), `Copy` (`Ctrl+C`), `Paste` (`Ctrl+V`) に対応し、分子フラグメントのクリップボード操作が可能です。
|
|
54
|
+
* `Space`: 選択モード切替 / 選択モードで全選択。
|
|
55
|
+
* `Delete` / `Backspace`: 選択項目の削除。
|
|
56
|
+
|
|
57
|
+
### 2\. キーボードショートカット
|
|
58
|
+
|
|
59
|
+
| キー | 操作 | 補足 |
|
|
60
|
+
| :--- | :--- | :--- |
|
|
61
|
+
| `1`/`2`/`3` | 結合次数を変更 | 単結合/二重結合/三重結合 |
|
|
62
|
+
| `W`/`D` | 立体化学結合に変更 | Wedge / Dash 結合 |
|
|
63
|
+
| `.` | ラジカルをトグル | 0 → 1 → 2 → 0 |
|
|
64
|
+
| `+`/`-` | 電荷を増減 | 形式電荷の変更 |
|
|
65
|
+
| `C`, `N`, `O` など | 原子記号を変更 | カーソル下または選択中の原子に適用 |
|
|
66
|
+
| `4` | ベンゼン環の配置 | カーソル下の原子/結合にワンショットで配置 |
|
|
67
|
+
| `Ctrl+K` | 2D最適化を実行 | |
|
|
68
|
+
| `Ctrl+L` | 3D変換を実行 | |
|
|
69
|
+
|
|
70
|
+
### 3\. 2D構造の最適化
|
|
71
|
+
|
|
72
|
+
* RDKit の `Compute2DCoords` を使った自動レイアウト(**Optimize 2D**)を実行します。
|
|
73
|
+
* 完全に重なった原子グループ(結合していないフラグメント同士など)を検出し、**自動で分離・解消するロジック**を実装しました。
|
|
74
|
+
|
|
75
|
+
### 4\. 高品質な3D可視化と分析
|
|
76
|
+
|
|
77
|
+
* **3D変換:** RDKit で 3D 座標を生成し MMFF94 ベースで最適化(**Convert to 3D**)します。
|
|
78
|
+
* **インタラクティブ表示:** PyVista / pyvistaqt によるインタラクティブな3D表示(Ball & Stick / CPK スタイル)を提供します。
|
|
79
|
+
* **キラルラベル表示:** 3D変換後、キラル中心に R/S ラベルを自動で付与し、**3Dビュー**に表示します。
|
|
80
|
+
* **分子分析ウィンドウ:** 分子量、SMILES、LogP、TPSAなど、RDKitベースの**主要な分子特性を一覧表示**する専用ウィンドウがあります。
|
|
81
|
+
|
|
82
|
+
### 5\. ファイル入出力
|
|
83
|
+
|
|
84
|
+
* **プロジェクトファイル (.pmeraw):** 2D描画データと3D構造、電荷、ラジカル、キラルラベルの状態など、編集状態を完全に保存/読み込みできます。
|
|
85
|
+
* 2D を MOL 形式で保存。
|
|
86
|
+
* 3D を MOL / XYZ 形式で保存。
|
|
87
|
+
* MOL/SDF の読み込みに対応しています。
|
|
88
|
+
|
|
89
|
+
-----
|
|
90
|
+
|
|
91
|
+
## 実行とインストール
|
|
92
|
+
|
|
93
|
+
#### 必要ライブラリ
|
|
94
|
+
|
|
95
|
+
`PyQt6`, `RDKit`, `NumPy`, `PyVista`, `pyvistaqt`
|
|
96
|
+
|
|
97
|
+
#### インストール例
|
|
98
|
+
|
|
99
|
+
**pip を使う場合:**
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
pip install moleditpy
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
> **Note**
|
|
106
|
+
> RDKit は特に科学計算ディストリビューションである `conda` を使ってインストールすることが推奨されます。
|
|
107
|
+
|
|
108
|
+
#### アプリの起動
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
moleditpy
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
-----
|
|
115
|
+
|
|
116
|
+
## Windows ショートカットとファイル関連付けガイド
|
|
117
|
+
|
|
118
|
+
Windows環境でプロジェクトファイル(`.pmeraw`)をダブルクリックで開いたり、アイコン付きのショートカットからアプリケーションを起動したりするための詳細な設定手順です。
|
|
119
|
+
|
|
120
|
+
### 1\. 実行ファイルとアイコンのパス
|
|
121
|
+
|
|
122
|
+
| 項目 | 詳細 |
|
|
123
|
+
| :--- | :--- |
|
|
124
|
+
| **実行ファイル (Target Application)** | `C:\Users\%USERNAME%\AppData\Local\Programs\Python\PythonXX\Scripts\moleditpy.exe` |
|
|
125
|
+
| **関連付けたい拡張子** | `.pmeraw` |
|
|
126
|
+
| **アイコンファイルのパス (Icon)** | `C:\Users\%USERNAME%\AppData\Local\Programs\Python\PythonXX\Lib\site-packages\moleditpy\assets\icon.ico` |
|
|
127
|
+
|
|
128
|
+
> **注意:** `%USERNAME%` はお使いのユーザー名、`PythonXX` はインストールされているPythonのバージョンディレクトリ名(例: `Python313`)に置き換えてください。
|
|
129
|
+
|
|
130
|
+
### 2\. ファイルの関連付け手順 (.pmeraw をダブルクリックで開く)
|
|
131
|
+
|
|
132
|
+
`.pmeraw` ファイルを `moleditpy.exe` で開けるようにする手順です。
|
|
133
|
+
|
|
134
|
+
1. **任意の `.pmeraw` ファイルを見つける:** エクスプローラーで、関連付けを行いたいファイル(例: `sample.pmeraw`)を**右クリック**します。
|
|
135
|
+
2. **関連付けの変更:** コンテキストメニューから\*\*「プロパティ」**を選択し、「全般」タブの「ファイルの種類」の横にある**「変更...」\*\*ボタンをクリックします。
|
|
136
|
+
3. **プログラムの選択:** 「このファイルを開く方法を選んでください」というウィンドウが表示されたら、「その他のアプリ」→\*\*「PCでアプリを探す」\*\*を選択します。
|
|
137
|
+
4. **実行ファイルの指定:** 上記のパス(プレースホルダーを置き換えたもの)にある **`moleditpy.exe`** を指定し、「開く」をクリックして完了です。
|
|
138
|
+
|
|
139
|
+
> **補足:** カスタムアイコンをシステム全体のファイル関連付けに適用するには、通常、レジストリを編集する必要があります。レジストリ操作は上級者向けであり、慎重に行ってください。
|
|
140
|
+
|
|
141
|
+
### 3\. デスクトップショートカットの作成手順
|
|
142
|
+
|
|
143
|
+
アプリケーションを起動するためのアイコン付きショートカットを作成します。
|
|
144
|
+
|
|
145
|
+
1. **新規ショートカットの作成:** デスクトップなどの任意の場所を右クリックし、「新規作成」→\*\*「ショートカット」\*\*を選択します。
|
|
146
|
+
2. **実行ファイルのパスを入力:** 「項目の場所を入力してください」に、上記の実行ファイルのパスを入力し、「次へ」をクリックします。
|
|
147
|
+
3. **名前を指定:** ショートカットに任意の名前(例: `moleditpy`)を付けて、「完了」をクリックします。
|
|
148
|
+
4. **アイコンの変更:**
|
|
149
|
+
* 作成されたショートカットを右クリックし、\*\*「プロパティ」\*\*を選択します。
|
|
150
|
+
* 「ショートカット」タブの\*\*「アイコンの変更...」\*\*ボタンをクリックします。
|
|
151
|
+
* 上記のアイコンファイルのパスを参照して `icon.ico` を選択します。
|
|
152
|
+
* 「OK」→「適用」→「OK」をクリックして完了です。
|
|
153
|
+
|
|
154
|
+
### 4\. ショートカットをスタートメニューに配置する方法
|
|
155
|
+
|
|
156
|
+
作成したショートカットをWindowsのスタートメニューのプログラム一覧に表示するには、以下の手順でフォルダに配置します。
|
|
157
|
+
|
|
158
|
+
1. **スタートメニューフォルダのパスを確認:** エクスプローラーのアドレスバーに以下のいずれかのパスを入力し、Enterキーを押します。
|
|
159
|
+
* **現在のユーザー専用 (推奨):** `%APPDATA%\Microsoft\Windows\Start Menu\Programs`
|
|
160
|
+
* **すべてのユーザー共通 (管理者権限が必要):** `%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs`
|
|
161
|
+
2. **ショートカットのコピーまたは移動:** 上記で開いたスタートメニューフォルダに、作成したショートカット(例: デスクトップ上の `moleditpy` ショートカット)を**コピーまたは移動**します。(Ctrlキーを押しながらドラッグするとコピーされます。)
|
|
162
|
+
3. **確認:** スタートボタンをクリックし、プログラム一覧からショートカットに付けた名前が追加されていることを確認してください。
|
|
163
|
+
|
|
164
|
+
-----
|
|
165
|
+
|
|
166
|
+
## macOS向け:Python CLIアプリをAutomator経由で.app化する方法(moleditpy)
|
|
167
|
+
|
|
168
|
+
この手順では、`pip install moleditpy` でインストールしたPythonアプリをmacOS上で\*\*.appアプリケーション\*\*として使えるようにし、独自アイコンを設定します。
|
|
169
|
+
|
|
170
|
+
### 1\. バイナリの場所を確認
|
|
171
|
+
|
|
172
|
+
以下のようなパスに実行ファイル(バイナリ)が生成されます:
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
/Users/<username>/Library/Python/<python_version>/bin/moleditpy
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### 2\. Automatorで新規アプリケーションを作成
|
|
179
|
+
|
|
180
|
+
1. **Automator** を開きます。
|
|
181
|
+
2. **「新規書類」** → **「アプリケーション」** を選択します。
|
|
182
|
+
3. 左の一覧から「ユーティリティ」→\*\*「シェルスクリプトを実行」\*\* を追加します。
|
|
183
|
+
|
|
184
|
+
### 3\. スクリプトを設定
|
|
185
|
+
|
|
186
|
+
スクリプト欄に以下を入力します。`"$@"` は、ドラッグ&ドロップされたファイルを引数として渡すためのものです。
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
#!/bin/bash
|
|
190
|
+
/Users/<username>/Library/Python/<python_version>/bin/moleditpy "$@"
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### 4\. アプリとして保存
|
|
194
|
+
|
|
195
|
+
1. メニューから\*\*「ファイル」\*\* → **「保存」** を選択します。
|
|
196
|
+
2. 名前を **`moleditpy.app`** にします。
|
|
197
|
+
3. 保存場所は一時的にデスクトップなど任意で構いません。
|
|
198
|
+
|
|
199
|
+
### 5\. アプリケーションフォルダーへ移動
|
|
200
|
+
|
|
201
|
+
保存後、作成したアプリをシステム標準のアプリケーションフォルダーへコピーします。
|
|
202
|
+
|
|
203
|
+
**Finderからコピーする場合**
|
|
204
|
+
|
|
205
|
+
1. Finderで `moleditpy.app` を選択し、`⌘ + C` でコピーします。
|
|
206
|
+
2. Finderメニューの「移動」→\*\*「アプリケーション」\*\* を開きます。
|
|
207
|
+
3. `⌘ + V` で貼り付けます。
|
|
208
|
+
|
|
209
|
+
**ターミナルからコピーする場合**
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
sudo cp -R ~/Desktop/moleditpy.app /Applications/
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### 6\. アイコンを設定
|
|
216
|
+
|
|
217
|
+
アイコン画像の場所:
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
/Users/<username>/Library/Python/<python_version>/lib/python<python_version>/site-packages/moleditpy/assets/icon.png
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
**アイコン設定手順(コピペ方式)**
|
|
224
|
+
|
|
225
|
+
1. Finderで上記の `icon.png` を開きます。
|
|
226
|
+
2. 「プレビュー」で画像を開いた状態で `⌘ + A` で**全選択**、`⌘ + C` で**コピー**します。
|
|
227
|
+
3. Finderで `/Applications` フォルダー内の `moleditpy.app` を選択 → `⌘ + I`(情報を見る)を押します。
|
|
228
|
+
4. 左上の小さいアイコンをクリック(枠が出る) → `⌘ + V` で**貼り付け**ます。
|
|
229
|
+
これでアプリのアイコンが変更されます。
|
|
230
|
+
|
|
231
|
+
### 7\. 実行権限を確認(必要な場合)
|
|
232
|
+
|
|
233
|
+
起動できない場合は、以下を実行してください。
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
chmod +x /Users/<username>/Library/Python/<python_version>/bin/moleditpy
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### 8\. 完了
|
|
240
|
+
|
|
241
|
+
これで `/Applications` にインストールされた **`moleditpy.app`** をダブルクリックするだけでPythonアプリが実行できます。
|
|
242
|
+
|
|
243
|
+
-----
|
|
244
|
+
|
|
245
|
+
## 技術的な仕組み
|
|
246
|
+
|
|
247
|
+
* **GUI と 2D 描画 (PyQt6):**
|
|
248
|
+
* `QGraphicsScene` 上にカスタムの `AtomItem`(原子)と `BondItem`(結合)を配置し、対話的に操作します。
|
|
249
|
+
* Undo/Redo機能は、アプリケーションの状態を丸ごと `pickle` でシリアライズしてスタックに保存することで実現しています。
|
|
250
|
+
* **化学計算 (RDKit):**
|
|
251
|
+
* 2D データから RDKit 分子オブジェクトを生成し、3D 座標生成(`AllChem.EmbedMolecule`)や分子特性計算を実行します。
|
|
252
|
+
* 計算は別スレッド(`QThread`)で行い、GUI の応答性を維持しています。
|
|
253
|
+
* **3D 可視化 (PyVista / pyvistaqt):**
|
|
254
|
+
* RDKit のコンフォーマ座標から PyVista のメッシュ(球や円柱)を生成して描画します。CPKカラーや3D結合のマルチレンダリングに対応しています。
|
|
255
|
+
|
|
256
|
+
-----
|
|
257
|
+
|
|
258
|
+
## ライセンス
|
|
259
|
+
|
|
260
|
+
このプロジェクトは **Apache-2.0 License** のもとで公開されています。詳細は `LICENSE` ファイルを参照してください。
|
|
261
|
+
|
moleditpy-0.3.2/PKG-INFO
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: moleditpy
|
|
3
|
-
Version: 0.3.2
|
|
4
|
-
Summary: A program to edit molecular structures using Python.
|
|
5
|
-
Author-email: HiroYokoyama <titech.yoko.hiro@gmail.com>
|
|
6
|
-
Project-URL: Homepage, https://github.com/HiroYokoyama/python_molecular_editor
|
|
7
|
-
Project-URL: Issues, https://github.com/HiroYokoyama/python_molecular_editor/issues
|
|
8
|
-
Classifier: Programming Language :: Python :: 3
|
|
9
|
-
Classifier: Operating System :: OS Independent
|
|
10
|
-
Classifier: Intended Audience :: Science/Research
|
|
11
|
-
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
17
|
-
Requires-Python: >=3.8
|
|
18
|
-
Description-Content-Type: text/markdown
|
|
19
|
-
Requires-Dist: PyQt6
|
|
20
|
-
Requires-Dist: rdkit
|
|
21
|
-
Requires-Dist: numpy
|
|
22
|
-
Requires-Dist: pyvista
|
|
23
|
-
Requires-Dist: pyvistaqt
|
|
24
|
-
|
|
25
|
-
# moleditpy -- Python Molecular Editor
|
|
26
|
-
|
|
27
|
-
Pythonで構築された、シンプルで直感的な分子構造エディターです。2Dでの分子描画と、3D構造可視化をサポートします。
|
|
28
|
-
|
|
29
|
-
作者: HiroYokoyama
|
|
30
|
-
ライセンス: Apache-2.0
|
|
31
|
-
リポジトリ: [https://github.com/HiroYokoyama/python\_molecular\_editor](https://github.com/HiroYokoyama/python_molecular_editor)
|
|
32
|
-
|
|
33
|
-

|
|
34
|
-
|
|
35
|
-
-----
|
|
36
|
-
|
|
37
|
-
## 概要
|
|
38
|
-
|
|
39
|
-
このアプリケーションは、化学者や学生が分子構造を容易に描き、その3次元的な形状を視覚的に確認するためのツールです。PyQt6によるモダンなGUI、RDKitによる強力な化学計算、PyVistaによる高性能な3Dレンダリングを組み合わせています。
|
|
40
|
-
|
|
41
|
-
-----
|
|
42
|
-
|
|
43
|
-
## 主な機能
|
|
44
|
-
|
|
45
|
-
* **直感的な2D描画**
|
|
46
|
-
|
|
47
|
-
* マウスのクリック&ドラッグで原子や結合を簡単に追加・編集
|
|
48
|
-
* 原子(C, N, O, Hなど)や結合(単結合、二重結合、三重結合)のツールバーからの選択
|
|
49
|
-
* 周期表ダイアログから任意の元素を選択可能
|
|
50
|
-
* Undo/Redo、選択、全選択、削除
|
|
51
|
-
|
|
52
|
-
* **テンプレートプレビューと配置**
|
|
53
|
-
|
|
54
|
-
* ベンゼン環や3〜9員環のテンプレートをプレビューして配置可能
|
|
55
|
-
* 既存の原子や結合にスナップして配置できる
|
|
56
|
-
|
|
57
|
-
* **キーボードショートカットと操作性の改善**
|
|
58
|
-
|
|
59
|
-
* `Space`: 選択モード切替 / 選択モードで全選択
|
|
60
|
-
* `1`/`2`/`3`: カーソル下または選択中の結合の結合次数を変更
|
|
61
|
-
* `Delete` / `Backspace`: 選択項目の削除
|
|
62
|
-
* 原子上でキー入力(`C`, `N`, `O`, `S`, `F`, `B`, `I`, `H`, `Shift+C`=Cl, `Shift+B`=Br)で元素を即時切替
|
|
63
|
-
|
|
64
|
-
* **2D構造の最適化**
|
|
65
|
-
|
|
66
|
-
* RDKit の `Compute2DCoords` を使った自動レイアウト(Optimize 2D)
|
|
67
|
-
|
|
68
|
-
* **高品質な3D可視化**
|
|
69
|
-
|
|
70
|
-
* RDKit で 3D 座標を生成し MMFF94 ベースで最適化
|
|
71
|
-
* PyVista / pyvistaqt によるインタラクティブな3D表示(原子は球、結合は円柱で表現)
|
|
72
|
-
* 3Dビューをクリックすると2Dにフォーカスを戻す動作など、操作性の改善
|
|
73
|
-
|
|
74
|
-
* **ファイル入出力**
|
|
75
|
-
|
|
76
|
-
* 2D を MOL 形式で保存
|
|
77
|
-
* 3D を MOL / XYZ 形式で保存
|
|
78
|
-
* MOL/SDF の読み込み
|
|
79
|
-
* プロジェクトファイル(`.pmeraw`)で編集状態の保存/読み込み
|
|
80
|
-
|
|
81
|
-
-----
|
|
82
|
-
|
|
83
|
-
## 実行とインストール
|
|
84
|
-
|
|
85
|
-
#### 必要ライブラリ
|
|
86
|
-
|
|
87
|
-
`PyQt6`, `RDKit`, `NumPy`, `PyVista`, `pyvistaqt`
|
|
88
|
-
|
|
89
|
-
#### インストール例
|
|
90
|
-
|
|
91
|
-
**pip を使う場合:**
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
pip install moleditpy
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
> **Note**
|
|
98
|
-
> RDKit は `conda` を使ってインストールすることが推奨されます。
|
|
99
|
-
|
|
100
|
-
#### アプリの起動
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
moleditpy
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
-----
|
|
107
|
-
|
|
108
|
-
## 技術的な仕組み
|
|
109
|
-
|
|
110
|
-
* **GUI と 2D 描画 (PyQt6)**
|
|
111
|
-
|
|
112
|
-
* アプリの骨格と 2D 描画キャンバスは PyQt6 の Graphics View Framework を利用しています。
|
|
113
|
-
* `QGraphicsScene` 上にカスタムの `AtomItem`(原子)と `BondItem`(結合)を配置し、マウス/キー入力で対話的に操作します。
|
|
114
|
-
* テンプレートのプレビューは専用の `TemplatePreviewItem` で描画されます。
|
|
115
|
-
|
|
116
|
-
* **化学計算 (RDKit)**
|
|
117
|
-
|
|
118
|
-
* 2D 描画データから MOL ブロックを生成し、RDKit に渡して 3D 座標生成(`AllChem.EmbedMolecule`)と最適化(`AllChem.MMFFOptimizeMolecule`)を実行します。
|
|
119
|
-
* 2D の自動レイアウト(`Compute2DCoords`)にも RDKit を使用します。
|
|
120
|
-
* 計算は別スレッド(`QThread`)で行い、GUI の応答性を維持しています。
|
|
121
|
-
|
|
122
|
-
* **3D 可視化 (PyVista / pyvistaqt)**
|
|
123
|
-
|
|
124
|
-
* RDKit のコンフォーマ座標から PyVista のメッシュ(球や円柱)を生成して描画します。
|
|
125
|
-
* ボンドの種類(単結合/二重結合/三重結合)に応じた複数円柱のレンダリングを実装しています。
|
|
126
|
-
|
|
127
|
-
-----
|
|
128
|
-
|
|
129
|
-
## ライセンス
|
|
130
|
-
|
|
131
|
-
このプロジェクトは Apache-2.0 License のもとで公開されています。詳細は `LICENSE` ファイルを参照してください。
|
moleditpy-0.3.2/README.md
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
# moleditpy -- Python Molecular Editor
|
|
2
|
-
|
|
3
|
-
Pythonで構築された、シンプルで直感的な分子構造エディターです。2Dでの分子描画と、3D構造可視化をサポートします。
|
|
4
|
-
|
|
5
|
-
作者: HiroYokoyama
|
|
6
|
-
ライセンス: Apache-2.0
|
|
7
|
-
リポジトリ: [https://github.com/HiroYokoyama/python\_molecular\_editor](https://github.com/HiroYokoyama/python_molecular_editor)
|
|
8
|
-
|
|
9
|
-

|
|
10
|
-
|
|
11
|
-
-----
|
|
12
|
-
|
|
13
|
-
## 概要
|
|
14
|
-
|
|
15
|
-
このアプリケーションは、化学者や学生が分子構造を容易に描き、その3次元的な形状を視覚的に確認するためのツールです。PyQt6によるモダンなGUI、RDKitによる強力な化学計算、PyVistaによる高性能な3Dレンダリングを組み合わせています。
|
|
16
|
-
|
|
17
|
-
-----
|
|
18
|
-
|
|
19
|
-
## 主な機能
|
|
20
|
-
|
|
21
|
-
* **直感的な2D描画**
|
|
22
|
-
|
|
23
|
-
* マウスのクリック&ドラッグで原子や結合を簡単に追加・編集
|
|
24
|
-
* 原子(C, N, O, Hなど)や結合(単結合、二重結合、三重結合)のツールバーからの選択
|
|
25
|
-
* 周期表ダイアログから任意の元素を選択可能
|
|
26
|
-
* Undo/Redo、選択、全選択、削除
|
|
27
|
-
|
|
28
|
-
* **テンプレートプレビューと配置**
|
|
29
|
-
|
|
30
|
-
* ベンゼン環や3〜9員環のテンプレートをプレビューして配置可能
|
|
31
|
-
* 既存の原子や結合にスナップして配置できる
|
|
32
|
-
|
|
33
|
-
* **キーボードショートカットと操作性の改善**
|
|
34
|
-
|
|
35
|
-
* `Space`: 選択モード切替 / 選択モードで全選択
|
|
36
|
-
* `1`/`2`/`3`: カーソル下または選択中の結合の結合次数を変更
|
|
37
|
-
* `Delete` / `Backspace`: 選択項目の削除
|
|
38
|
-
* 原子上でキー入力(`C`, `N`, `O`, `S`, `F`, `B`, `I`, `H`, `Shift+C`=Cl, `Shift+B`=Br)で元素を即時切替
|
|
39
|
-
|
|
40
|
-
* **2D構造の最適化**
|
|
41
|
-
|
|
42
|
-
* RDKit の `Compute2DCoords` を使った自動レイアウト(Optimize 2D)
|
|
43
|
-
|
|
44
|
-
* **高品質な3D可視化**
|
|
45
|
-
|
|
46
|
-
* RDKit で 3D 座標を生成し MMFF94 ベースで最適化
|
|
47
|
-
* PyVista / pyvistaqt によるインタラクティブな3D表示(原子は球、結合は円柱で表現)
|
|
48
|
-
* 3Dビューをクリックすると2Dにフォーカスを戻す動作など、操作性の改善
|
|
49
|
-
|
|
50
|
-
* **ファイル入出力**
|
|
51
|
-
|
|
52
|
-
* 2D を MOL 形式で保存
|
|
53
|
-
* 3D を MOL / XYZ 形式で保存
|
|
54
|
-
* MOL/SDF の読み込み
|
|
55
|
-
* プロジェクトファイル(`.pmeraw`)で編集状態の保存/読み込み
|
|
56
|
-
|
|
57
|
-
-----
|
|
58
|
-
|
|
59
|
-
## 実行とインストール
|
|
60
|
-
|
|
61
|
-
#### 必要ライブラリ
|
|
62
|
-
|
|
63
|
-
`PyQt6`, `RDKit`, `NumPy`, `PyVista`, `pyvistaqt`
|
|
64
|
-
|
|
65
|
-
#### インストール例
|
|
66
|
-
|
|
67
|
-
**pip を使う場合:**
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
pip install moleditpy
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
> **Note**
|
|
74
|
-
> RDKit は `conda` を使ってインストールすることが推奨されます。
|
|
75
|
-
|
|
76
|
-
#### アプリの起動
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
moleditpy
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
-----
|
|
83
|
-
|
|
84
|
-
## 技術的な仕組み
|
|
85
|
-
|
|
86
|
-
* **GUI と 2D 描画 (PyQt6)**
|
|
87
|
-
|
|
88
|
-
* アプリの骨格と 2D 描画キャンバスは PyQt6 の Graphics View Framework を利用しています。
|
|
89
|
-
* `QGraphicsScene` 上にカスタムの `AtomItem`(原子)と `BondItem`(結合)を配置し、マウス/キー入力で対話的に操作します。
|
|
90
|
-
* テンプレートのプレビューは専用の `TemplatePreviewItem` で描画されます。
|
|
91
|
-
|
|
92
|
-
* **化学計算 (RDKit)**
|
|
93
|
-
|
|
94
|
-
* 2D 描画データから MOL ブロックを生成し、RDKit に渡して 3D 座標生成(`AllChem.EmbedMolecule`)と最適化(`AllChem.MMFFOptimizeMolecule`)を実行します。
|
|
95
|
-
* 2D の自動レイアウト(`Compute2DCoords`)にも RDKit を使用します。
|
|
96
|
-
* 計算は別スレッド(`QThread`)で行い、GUI の応答性を維持しています。
|
|
97
|
-
|
|
98
|
-
* **3D 可視化 (PyVista / pyvistaqt)**
|
|
99
|
-
|
|
100
|
-
* RDKit のコンフォーマ座標から PyVista のメッシュ(球や円柱)を生成して描画します。
|
|
101
|
-
* ボンドの種類(単結合/二重結合/三重結合)に応じた複数円柱のレンダリングを実装しています。
|
|
102
|
-
|
|
103
|
-
-----
|
|
104
|
-
|
|
105
|
-
## ライセンス
|
|
106
|
-
|
|
107
|
-
このプロジェクトは Apache-2.0 License のもとで公開されています。詳細は `LICENSE` ファイルを参照してください。
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: moleditpy
|
|
3
|
-
Version: 0.3.2
|
|
4
|
-
Summary: A program to edit molecular structures using Python.
|
|
5
|
-
Author-email: HiroYokoyama <titech.yoko.hiro@gmail.com>
|
|
6
|
-
Project-URL: Homepage, https://github.com/HiroYokoyama/python_molecular_editor
|
|
7
|
-
Project-URL: Issues, https://github.com/HiroYokoyama/python_molecular_editor/issues
|
|
8
|
-
Classifier: Programming Language :: Python :: 3
|
|
9
|
-
Classifier: Operating System :: OS Independent
|
|
10
|
-
Classifier: Intended Audience :: Science/Research
|
|
11
|
-
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
17
|
-
Requires-Python: >=3.8
|
|
18
|
-
Description-Content-Type: text/markdown
|
|
19
|
-
Requires-Dist: PyQt6
|
|
20
|
-
Requires-Dist: rdkit
|
|
21
|
-
Requires-Dist: numpy
|
|
22
|
-
Requires-Dist: pyvista
|
|
23
|
-
Requires-Dist: pyvistaqt
|
|
24
|
-
|
|
25
|
-
# moleditpy -- Python Molecular Editor
|
|
26
|
-
|
|
27
|
-
Pythonで構築された、シンプルで直感的な分子構造エディターです。2Dでの分子描画と、3D構造可視化をサポートします。
|
|
28
|
-
|
|
29
|
-
作者: HiroYokoyama
|
|
30
|
-
ライセンス: Apache-2.0
|
|
31
|
-
リポジトリ: [https://github.com/HiroYokoyama/python\_molecular\_editor](https://github.com/HiroYokoyama/python_molecular_editor)
|
|
32
|
-
|
|
33
|
-

|
|
34
|
-
|
|
35
|
-
-----
|
|
36
|
-
|
|
37
|
-
## 概要
|
|
38
|
-
|
|
39
|
-
このアプリケーションは、化学者や学生が分子構造を容易に描き、その3次元的な形状を視覚的に確認するためのツールです。PyQt6によるモダンなGUI、RDKitによる強力な化学計算、PyVistaによる高性能な3Dレンダリングを組み合わせています。
|
|
40
|
-
|
|
41
|
-
-----
|
|
42
|
-
|
|
43
|
-
## 主な機能
|
|
44
|
-
|
|
45
|
-
* **直感的な2D描画**
|
|
46
|
-
|
|
47
|
-
* マウスのクリック&ドラッグで原子や結合を簡単に追加・編集
|
|
48
|
-
* 原子(C, N, O, Hなど)や結合(単結合、二重結合、三重結合)のツールバーからの選択
|
|
49
|
-
* 周期表ダイアログから任意の元素を選択可能
|
|
50
|
-
* Undo/Redo、選択、全選択、削除
|
|
51
|
-
|
|
52
|
-
* **テンプレートプレビューと配置**
|
|
53
|
-
|
|
54
|
-
* ベンゼン環や3〜9員環のテンプレートをプレビューして配置可能
|
|
55
|
-
* 既存の原子や結合にスナップして配置できる
|
|
56
|
-
|
|
57
|
-
* **キーボードショートカットと操作性の改善**
|
|
58
|
-
|
|
59
|
-
* `Space`: 選択モード切替 / 選択モードで全選択
|
|
60
|
-
* `1`/`2`/`3`: カーソル下または選択中の結合の結合次数を変更
|
|
61
|
-
* `Delete` / `Backspace`: 選択項目の削除
|
|
62
|
-
* 原子上でキー入力(`C`, `N`, `O`, `S`, `F`, `B`, `I`, `H`, `Shift+C`=Cl, `Shift+B`=Br)で元素を即時切替
|
|
63
|
-
|
|
64
|
-
* **2D構造の最適化**
|
|
65
|
-
|
|
66
|
-
* RDKit の `Compute2DCoords` を使った自動レイアウト(Optimize 2D)
|
|
67
|
-
|
|
68
|
-
* **高品質な3D可視化**
|
|
69
|
-
|
|
70
|
-
* RDKit で 3D 座標を生成し MMFF94 ベースで最適化
|
|
71
|
-
* PyVista / pyvistaqt によるインタラクティブな3D表示(原子は球、結合は円柱で表現)
|
|
72
|
-
* 3Dビューをクリックすると2Dにフォーカスを戻す動作など、操作性の改善
|
|
73
|
-
|
|
74
|
-
* **ファイル入出力**
|
|
75
|
-
|
|
76
|
-
* 2D を MOL 形式で保存
|
|
77
|
-
* 3D を MOL / XYZ 形式で保存
|
|
78
|
-
* MOL/SDF の読み込み
|
|
79
|
-
* プロジェクトファイル(`.pmeraw`)で編集状態の保存/読み込み
|
|
80
|
-
|
|
81
|
-
-----
|
|
82
|
-
|
|
83
|
-
## 実行とインストール
|
|
84
|
-
|
|
85
|
-
#### 必要ライブラリ
|
|
86
|
-
|
|
87
|
-
`PyQt6`, `RDKit`, `NumPy`, `PyVista`, `pyvistaqt`
|
|
88
|
-
|
|
89
|
-
#### インストール例
|
|
90
|
-
|
|
91
|
-
**pip を使う場合:**
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
pip install moleditpy
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
> **Note**
|
|
98
|
-
> RDKit は `conda` を使ってインストールすることが推奨されます。
|
|
99
|
-
|
|
100
|
-
#### アプリの起動
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
moleditpy
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
-----
|
|
107
|
-
|
|
108
|
-
## 技術的な仕組み
|
|
109
|
-
|
|
110
|
-
* **GUI と 2D 描画 (PyQt6)**
|
|
111
|
-
|
|
112
|
-
* アプリの骨格と 2D 描画キャンバスは PyQt6 の Graphics View Framework を利用しています。
|
|
113
|
-
* `QGraphicsScene` 上にカスタムの `AtomItem`(原子)と `BondItem`(結合)を配置し、マウス/キー入力で対話的に操作します。
|
|
114
|
-
* テンプレートのプレビューは専用の `TemplatePreviewItem` で描画されます。
|
|
115
|
-
|
|
116
|
-
* **化学計算 (RDKit)**
|
|
117
|
-
|
|
118
|
-
* 2D 描画データから MOL ブロックを生成し、RDKit に渡して 3D 座標生成(`AllChem.EmbedMolecule`)と最適化(`AllChem.MMFFOptimizeMolecule`)を実行します。
|
|
119
|
-
* 2D の自動レイアウト(`Compute2DCoords`)にも RDKit を使用します。
|
|
120
|
-
* 計算は別スレッド(`QThread`)で行い、GUI の応答性を維持しています。
|
|
121
|
-
|
|
122
|
-
* **3D 可視化 (PyVista / pyvistaqt)**
|
|
123
|
-
|
|
124
|
-
* RDKit のコンフォーマ座標から PyVista のメッシュ(球や円柱)を生成して描画します。
|
|
125
|
-
* ボンドの種類(単結合/二重結合/三重結合)に応じた複数円柱のレンダリングを実装しています。
|
|
126
|
-
|
|
127
|
-
-----
|
|
128
|
-
|
|
129
|
-
## ライセンス
|
|
130
|
-
|
|
131
|
-
このプロジェクトは Apache-2.0 License のもとで公開されています。詳細は `LICENSE` ファイルを参照してください。
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|