MoleditPy-linux 2.8.2__tar.gz → 2.8.3__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_linux-2.8.2 → moleditpy_linux-2.8.3}/PKG-INFO +1 -1
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/pyproject.toml +1 -1
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/MoleditPy_linux.egg-info/PKG-INFO +1 -1
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/calculation_worker.py +17 -14
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/constants.py +1 -1
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/constrained_optimization_dialog.py +3 -2
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window.py +4 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_compute.py +21 -2
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_main_init.py +13 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/move_group_dialog.py +0 -12
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/translation_dialog.py +0 -18
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/LICENSE +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/README.md +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/setup.cfg +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/MoleditPy_linux.egg-info/SOURCES.txt +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/MoleditPy_linux.egg-info/dependency_links.txt +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/MoleditPy_linux.egg-info/entry_points.txt +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/MoleditPy_linux.egg-info/requires.txt +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/MoleditPy_linux.egg-info/top_level.txt +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/__init__.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/__main__.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/assets/file_icon.ico +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/assets/icon.icns +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/assets/icon.ico +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/assets/icon.png +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/main.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/__init__.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/about_dialog.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/align_plane_dialog.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/alignment_dialog.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/analysis_window.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/angle_dialog.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/atom_item.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/bond_item.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/bond_length_dialog.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/color_settings_dialog.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/custom_interactor_style.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/custom_qt_interactor.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/dialog3_d_picking_mixin.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/dihedral_dialog.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_app_state.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_dialog_manager.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_edit_3d.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_edit_actions.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_export.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_molecular_parsers.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_project_io.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_string_importers.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_ui_manager.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_view_3d.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_view_loaders.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/mirror_dialog.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/mol_geometry.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/molecular_data.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/molecule_scene.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/periodic_table_dialog.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/planarize_dialog.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/plugin_interface.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/plugin_manager.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/plugin_manager_window.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/settings_dialog.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/sip_isdeleted_safe.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/template_preview_item.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/template_preview_view.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/user_template_dialog.py +0 -0
- {moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/zoomable_view.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: MoleditPy-linux
|
|
3
|
-
Version: 2.8.
|
|
3
|
+
Version: 2.8.3
|
|
4
4
|
Summary: 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.
|
|
5
5
|
Author-email: HiroYokoyama <titech.yoko.hiro@gmail.com>
|
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: MoleditPy-linux
|
|
3
|
-
Version: 2.8.
|
|
3
|
+
Version: 2.8.3
|
|
4
4
|
Summary: 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.
|
|
5
5
|
Author-email: HiroYokoyama <titech.yoko.hiro@gmail.com>
|
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/calculation_worker.py
RENAMED
|
@@ -210,17 +210,20 @@ def _adjust_collision_avoidance(rd_mol, check_halted_cb, safe_status_cb):
|
|
|
210
210
|
safe_status_cb(f"Collision avoidance warning: {e}")
|
|
211
211
|
|
|
212
212
|
|
|
213
|
-
def _iterative_optimize(mol, method, check_halted_cb, safe_status_cb, max_iters=4000, chunk_size=100):
|
|
213
|
+
def _iterative_optimize(mol, method, check_halted_cb, safe_status_cb, max_iters=4000, chunk_size=100, options=None):
|
|
214
214
|
"""Perform force field optimization in small chunks to avoid UI freezing and allow halts."""
|
|
215
215
|
try:
|
|
216
|
+
# Respect the "Consider Intermolecular Interaction for RDKit" setting
|
|
217
|
+
ignore_interfrag = not options.get("optimize_intermolecular_interaction_rdkit", True) if options else False
|
|
218
|
+
|
|
216
219
|
if method in ("MMFF", "MMFF94", "MMFF94S", "MMFF94s"):
|
|
217
220
|
mmff_variant = "MMFF94" if method == "MMFF94" else "MMFF94s"
|
|
218
221
|
props = AllChem.MMFFGetMoleculeProperties(mol, mmffVariant=mmff_variant)
|
|
219
222
|
if props is None:
|
|
220
223
|
raise ValueError(f"Failed to generate MMFF properties for variant {mmff_variant}.")
|
|
221
|
-
ff = AllChem.MMFFGetMoleculeForceField(mol, props, confId=0)
|
|
224
|
+
ff = AllChem.MMFFGetMoleculeForceField(mol, props, confId=0, ignoreInterfragInteractions=ignore_interfrag)
|
|
222
225
|
elif method == "UFF":
|
|
223
|
-
ff = AllChem.UFFGetMoleculeForceField(mol, confId=0)
|
|
226
|
+
ff = AllChem.UFFGetMoleculeForceField(mol, confId=0, ignoreInterfragInteractions=ignore_interfrag)
|
|
224
227
|
else:
|
|
225
228
|
raise ValueError(f"Unknown optimization method: {method}")
|
|
226
229
|
|
|
@@ -714,6 +717,8 @@ def _perform_direct_conversion(mol_block, mol, options, _check_halted, _safe_sta
|
|
|
714
717
|
# Optimization (respects do_optimize flag)
|
|
715
718
|
do_optimize = options.get("do_optimize", True) if options else True
|
|
716
719
|
if do_optimize:
|
|
720
|
+
# Collision avoidance before optimization
|
|
721
|
+
_adjust_collision_avoidance(mol, _check_halted, _safe_status)
|
|
717
722
|
_safe_status("Direct conversion: optimizing geometry...")
|
|
718
723
|
if _check_halted():
|
|
719
724
|
raise WorkerHaltError("Halted")
|
|
@@ -755,7 +760,7 @@ def _perform_direct_conversion(mol_block, mol, options, _check_halted, _safe_sta
|
|
|
755
760
|
except Exception:
|
|
756
761
|
pass
|
|
757
762
|
_safe_status(f"Applying force field optimization ({method_key} / RDKit)...")
|
|
758
|
-
opt_success = _iterative_optimize(mol, method_key, _check_halted, _safe_status)
|
|
763
|
+
opt_success = _iterative_optimize(mol, method_key, _check_halted, _safe_status, options=options)
|
|
759
764
|
if not opt_success:
|
|
760
765
|
_safe_status(f"Warning: Optimization with {opt_method} failed. Using unoptimized structure.")
|
|
761
766
|
try:
|
|
@@ -765,8 +770,6 @@ def _perform_direct_conversion(mol_block, mol, options, _check_halted, _safe_sta
|
|
|
765
770
|
|
|
766
771
|
if _check_halted():
|
|
767
772
|
raise WorkerHaltError("Halted")
|
|
768
|
-
if do_optimize:
|
|
769
|
-
_adjust_collision_avoidance(mol, _check_halted, _safe_status)
|
|
770
773
|
return mol
|
|
771
774
|
|
|
772
775
|
|
|
@@ -800,7 +803,7 @@ def _perform_optimize_only(mol, options, worker_id, _check_halted, _safe_status,
|
|
|
800
803
|
mol.SetProp("_pme_optimization_method", opt_method)
|
|
801
804
|
except Exception:
|
|
802
805
|
pass
|
|
803
|
-
opt_success = _iterative_optimize(mol, method_key, _check_halted, _safe_status)
|
|
806
|
+
opt_success = _iterative_optimize(mol, method_key, _check_halted, _safe_status, options=options)
|
|
804
807
|
|
|
805
808
|
if not opt_success:
|
|
806
809
|
raise Exception(f"Optimization with {opt_method} failed. You can change the method in the settings.")
|
|
@@ -843,6 +846,8 @@ def _perform_obabel_conversion(mol_block, conversion_mode, opt_method, worker_id
|
|
|
843
846
|
if rd_mol is None:
|
|
844
847
|
raise ValueError("Open Babel produced invalid MOL block.")
|
|
845
848
|
rd_mol = Chem.AddHs(rd_mol)
|
|
849
|
+
# Collision avoidance before optimization
|
|
850
|
+
_adjust_collision_avoidance(rd_mol, _check_halted, _safe_status)
|
|
846
851
|
try:
|
|
847
852
|
opt_method_raw = opt_method or "MMFF94s_RDKIT"
|
|
848
853
|
backend = "OBABEL" if "OBABEL" in opt_method_raw.upper() else "RDKIT"
|
|
@@ -870,7 +875,7 @@ def _perform_obabel_conversion(mol_block, conversion_mode, opt_method, worker_id
|
|
|
870
875
|
except Exception:
|
|
871
876
|
pass
|
|
872
877
|
_safe_status(f"Optimizing with RDKit ({method_key})...")
|
|
873
|
-
opt_success = _iterative_optimize(rd_mol, method_key, _check_halted, _safe_status)
|
|
878
|
+
opt_success = _iterative_optimize(rd_mol, method_key, _check_halted, _safe_status, options=options)
|
|
874
879
|
|
|
875
880
|
if not opt_success:
|
|
876
881
|
_safe_status(f"Warning: Optimization with {opt_method_raw} failed. Using unoptimized structure.")
|
|
@@ -894,8 +899,6 @@ def _perform_obabel_conversion(mol_block, conversion_mode, opt_method, worker_id
|
|
|
894
899
|
if _check_halted():
|
|
895
900
|
raise WorkerHaltError("Halted")
|
|
896
901
|
|
|
897
|
-
# Collision avoidance
|
|
898
|
-
_adjust_collision_avoidance(rd_mol, _check_halted, _safe_status)
|
|
899
902
|
try:
|
|
900
903
|
_safe_finished((worker_id, rd_mol))
|
|
901
904
|
except Exception:
|
|
@@ -1226,6 +1229,9 @@ class CalculationWorker(QObject):
|
|
|
1226
1229
|
bond.SetStereoAtoms(stereo_atoms[0], stereo_atoms[1])
|
|
1227
1230
|
bond.SetStereo(stereo)
|
|
1228
1231
|
|
|
1232
|
+
# Collision avoidance before optimization
|
|
1233
|
+
_adjust_collision_avoidance(mol, _check_halted, _safe_status)
|
|
1234
|
+
|
|
1229
1235
|
try:
|
|
1230
1236
|
opt_method_raw = opt_method or "MMFF94s_RDKIT"
|
|
1231
1237
|
backend = "OBABEL" if "OBABEL" in opt_method_raw.upper() else "RDKIT"
|
|
@@ -1253,7 +1259,7 @@ class CalculationWorker(QObject):
|
|
|
1253
1259
|
except Exception: # pragma: no cover
|
|
1254
1260
|
pass
|
|
1255
1261
|
_safe_status(f"Optimizing with RDKit ({method_key})...")
|
|
1256
|
-
opt_success = _iterative_optimize(mol, method_key, _check_halted, _safe_status)
|
|
1262
|
+
opt_success = _iterative_optimize(mol, method_key, _check_halted, _safe_status, options=options)
|
|
1257
1263
|
|
|
1258
1264
|
if not opt_success:
|
|
1259
1265
|
raise Exception(f"Optimization with {opt_method_raw} failed. You can change the method in the settings.")
|
|
@@ -1282,9 +1288,6 @@ class CalculationWorker(QObject):
|
|
|
1282
1288
|
if _check_halted():
|
|
1283
1289
|
raise WorkerHaltError("Halted")
|
|
1284
1290
|
|
|
1285
|
-
# Collision avoidance
|
|
1286
|
-
_adjust_collision_avoidance(mol, _check_halted, _safe_status)
|
|
1287
|
-
|
|
1288
1291
|
try:
|
|
1289
1292
|
_safe_finished((worker_id, mol))
|
|
1290
1293
|
except WorkerHaltError:
|
|
@@ -445,14 +445,15 @@ class ConstrainedOptimizationDialog(Dialog3DPickingMixin, QDialog): # pragma: n
|
|
|
445
445
|
conf = self.mol.GetConformer()
|
|
446
446
|
|
|
447
447
|
try:
|
|
448
|
+
ignore_interfrag = not self.main_window.settings.get("optimize_intermolecular_interaction_rdkit", True)
|
|
448
449
|
if ff_name.startswith("MMFF"):
|
|
449
450
|
props = AllChem.MMFFGetMoleculeProperties(self.mol, mmffVariant=ff_name)
|
|
450
|
-
ff = AllChem.MMFFGetMoleculeForceField(self.mol, props, confId=0)
|
|
451
|
+
ff = AllChem.MMFFGetMoleculeForceField(self.mol, props, confId=0, ignoreInterfragInteractions=ignore_interfrag)
|
|
451
452
|
add_dist_constraint = ff.MMFFAddDistanceConstraint
|
|
452
453
|
add_angle_constraint = ff.MMFFAddAngleConstraint
|
|
453
454
|
add_torsion_constraint = ff.MMFFAddTorsionConstraint
|
|
454
455
|
else: # UFF
|
|
455
|
-
ff = AllChem.UFFGetMoleculeForceField(self.mol, confId=0)
|
|
456
|
+
ff = AllChem.UFFGetMoleculeForceField(self.mol, confId=0, ignoreInterfragInteractions=ignore_interfrag)
|
|
456
457
|
add_dist_constraint = ff.UFFAddDistanceConstraint
|
|
457
458
|
add_angle_constraint = ff.UFFAddAngleConstraint
|
|
458
459
|
add_torsion_constraint = ff.UFFAddTorsionConstraint
|
|
@@ -178,6 +178,10 @@ class MainWindow(QMainWindow):
|
|
|
178
178
|
# --- MOVED TO main_window_compute.py ---
|
|
179
179
|
return self.main_window_compute.set_optimization_method(method_name)
|
|
180
180
|
|
|
181
|
+
def toggle_intermolecular_interaction_rdkit(self, checked):
|
|
182
|
+
# --- MOVED TO main_window_compute.py ---
|
|
183
|
+
return self.main_window_compute.toggle_intermolecular_interaction_rdkit(checked)
|
|
184
|
+
|
|
181
185
|
def copy_selection(self):
|
|
182
186
|
# --- MOVED TO main_window_edit_actions.py ---
|
|
183
187
|
return self.main_window_edit_actions.copy_selection()
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_compute.py
RENAMED
|
@@ -119,6 +119,20 @@ class MainWindowCompute(object):
|
|
|
119
119
|
label = self.optimization_method
|
|
120
120
|
self.statusBar().showMessage(f"3D optimization method set to: {label}")
|
|
121
121
|
|
|
122
|
+
def toggle_intermolecular_interaction_rdkit(self, checked): # pragma: no cover
|
|
123
|
+
"""Toggle whether intermolecular interactions are considered for RDKit optimization."""
|
|
124
|
+
try:
|
|
125
|
+
self.settings["optimize_intermolecular_interaction_rdkit"] = checked
|
|
126
|
+
try:
|
|
127
|
+
self.settings_dirty = True
|
|
128
|
+
except Exception:
|
|
129
|
+
pass
|
|
130
|
+
state_str = "Enabled" if checked else "Disabled"
|
|
131
|
+
self.statusBar().showMessage(f"Intermolecular interaction for RDKit: {state_str}")
|
|
132
|
+
except Exception:
|
|
133
|
+
import traceback
|
|
134
|
+
traceback.print_exc()
|
|
135
|
+
|
|
122
136
|
def show_convert_menu(self, pos): # pragma: no cover
|
|
123
137
|
"""右クリックで表示する一時的な3D変換メニュー。
|
|
124
138
|
選択したモードは一時フラグとして保持され、その後の変換で使用されます(永続化しません)。
|
|
@@ -442,7 +456,11 @@ class MainWindowCompute(object):
|
|
|
442
456
|
import traceback
|
|
443
457
|
traceback.print_exc()
|
|
444
458
|
|
|
445
|
-
options = {
|
|
459
|
+
options = {
|
|
460
|
+
"conversion_mode": conv_mode,
|
|
461
|
+
"optimization_method": opt_method,
|
|
462
|
+
"optimize_intermolecular_interaction_rdkit": self.settings.get("optimize_intermolecular_interaction_rdkit", True)
|
|
463
|
+
}
|
|
446
464
|
# Attach the run id so the worker and main thread can correlate
|
|
447
465
|
try:
|
|
448
466
|
# Attach the concrete run id rather than the single waiting id
|
|
@@ -800,7 +818,8 @@ class MainWindowCompute(object):
|
|
|
800
818
|
|
|
801
819
|
options = {
|
|
802
820
|
"conversion_mode": "optimize_only",
|
|
803
|
-
"optimization_method": method
|
|
821
|
+
"optimization_method": method,
|
|
822
|
+
"optimize_intermolecular_interaction_rdkit": self.settings.get("optimize_intermolecular_interaction_rdkit", True)
|
|
804
823
|
}
|
|
805
824
|
|
|
806
825
|
# Assign a unique ID for this optimization run
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_main_init.py
RENAMED
|
@@ -1494,6 +1494,13 @@ class MainWindowMainInit(object):
|
|
|
1494
1494
|
optimization_menu.addAction(action)
|
|
1495
1495
|
opt_group.addAction(action)
|
|
1496
1496
|
opt_actions[key] = action
|
|
1497
|
+
|
|
1498
|
+
optimization_menu.addSeparator()
|
|
1499
|
+
self.intermolecular_rdkit_action = QAction("Consider Intermolecular Interaction for RDKit", self)
|
|
1500
|
+
self.intermolecular_rdkit_action.setCheckable(True)
|
|
1501
|
+
self.intermolecular_rdkit_action.setChecked(self.settings.get("optimize_intermolecular_interaction_rdkit", True))
|
|
1502
|
+
self.intermolecular_rdkit_action.triggered.connect(self.toggle_intermolecular_interaction_rdkit)
|
|
1503
|
+
optimization_menu.addAction(self.intermolecular_rdkit_action)
|
|
1497
1504
|
|
|
1498
1505
|
# Persist the actions mapping so other methods can update the checked state
|
|
1499
1506
|
self.opt3d_actions = opt_actions
|
|
@@ -1723,6 +1730,11 @@ class MainWindowMainInit(object):
|
|
|
1723
1730
|
except Exception: # pragma: no cover
|
|
1724
1731
|
import traceback
|
|
1725
1732
|
traceback.print_exc()
|
|
1733
|
+
|
|
1734
|
+
# update intermolecular rdkit setting
|
|
1735
|
+
if hasattr(self, "intermolecular_rdkit_action"):
|
|
1736
|
+
self.intermolecular_rdkit_action.setChecked(self.settings.get("optimize_intermolecular_interaction_rdkit", True))
|
|
1737
|
+
|
|
1726
1738
|
# 3Dビューの設定を適用
|
|
1727
1739
|
self.apply_3d_settings()
|
|
1728
1740
|
# 現在の分子を再描画(設定変更を反映)
|
|
@@ -1850,6 +1862,7 @@ class MainWindowMainInit(object):
|
|
|
1850
1862
|
"bond_color_2d": "#222222", # Almost black
|
|
1851
1863
|
"atom_use_bond_color_2d": False,
|
|
1852
1864
|
"bond_cap_style_2d": "Round",
|
|
1865
|
+
"optimize_intermolecular_interaction_rdkit": True,
|
|
1853
1866
|
}
|
|
1854
1867
|
|
|
1855
1868
|
try:
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/move_group_dialog.py
RENAMED
|
@@ -654,22 +654,10 @@ class MoveGroupDialog(Dialog3DPickingMixin, QDialog): # pragma: no cover
|
|
|
654
654
|
"""ダイアログが閉じられる時の処理"""
|
|
655
655
|
self.clear_atom_labels()
|
|
656
656
|
self.disable_picking()
|
|
657
|
-
try:
|
|
658
|
-
self.main_window.draw_molecule_3d(self.mol)
|
|
659
|
-
except Exception: # pragma: no cover
|
|
660
|
-
import traceback
|
|
661
|
-
traceback.print_exc()
|
|
662
|
-
|
|
663
657
|
super().closeEvent(event)
|
|
664
658
|
|
|
665
659
|
def reject(self):
|
|
666
660
|
"""キャンセル時の処理"""
|
|
667
661
|
self.clear_atom_labels()
|
|
668
662
|
self.disable_picking()
|
|
669
|
-
try:
|
|
670
|
-
self.main_window.draw_molecule_3d(self.mol)
|
|
671
|
-
except Exception: # pragma: no cover
|
|
672
|
-
import traceback
|
|
673
|
-
traceback.print_exc()
|
|
674
|
-
|
|
675
663
|
super().reject()
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/translation_dialog.py
RENAMED
|
@@ -358,34 +358,16 @@ class TranslationDialog(Dialog3DPickingMixin, QDialog): # pragma: no cover
|
|
|
358
358
|
"""ダイアログが閉じられる時の処理"""
|
|
359
359
|
self.clear_atom_labels()
|
|
360
360
|
self.disable_picking()
|
|
361
|
-
try:
|
|
362
|
-
self.main_window.draw_molecule_3d(self.mol)
|
|
363
|
-
except Exception: # pragma: no cover
|
|
364
|
-
import traceback
|
|
365
|
-
traceback.print_exc()
|
|
366
|
-
|
|
367
361
|
super().closeEvent(event)
|
|
368
362
|
|
|
369
363
|
def reject(self):
|
|
370
364
|
"""キャンセル時の処理"""
|
|
371
365
|
self.clear_atom_labels()
|
|
372
366
|
self.disable_picking()
|
|
373
|
-
try:
|
|
374
|
-
self.main_window.draw_molecule_3d(self.mol)
|
|
375
|
-
except Exception: # pragma: no cover
|
|
376
|
-
import traceback
|
|
377
|
-
traceback.print_exc()
|
|
378
|
-
|
|
379
367
|
super().reject()
|
|
380
368
|
|
|
381
369
|
def accept(self):
|
|
382
370
|
"""OK時の処理"""
|
|
383
371
|
self.clear_atom_labels()
|
|
384
372
|
self.disable_picking()
|
|
385
|
-
try:
|
|
386
|
-
self.main_window.draw_molecule_3d(self.mol)
|
|
387
|
-
except Exception: # pragma: no cover
|
|
388
|
-
import traceback
|
|
389
|
-
traceback.print_exc()
|
|
390
|
-
|
|
391
373
|
super().accept()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/MoleditPy_linux.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/MoleditPy_linux.egg-info/entry_points.txt
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/align_plane_dialog.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/alignment_dialog.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/analysis_window.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/bond_length_dialog.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/color_settings_dialog.py
RENAMED
|
File without changes
|
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/custom_qt_interactor.py
RENAMED
|
File without changes
|
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/dihedral_dialog.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_app_state.py
RENAMED
|
File without changes
|
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_edit_3d.py
RENAMED
|
File without changes
|
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_export.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/main_window_view_3d.py
RENAMED
|
File without changes
|
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/mirror_dialog.py
RENAMED
|
File without changes
|
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/molecular_data.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/molecule_scene.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/periodic_table_dialog.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/planarize_dialog.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/plugin_interface.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/plugin_manager.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/plugin_manager_window.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/settings_dialog.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/sip_isdeleted_safe.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/template_preview_item.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/template_preview_view.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/user_template_dialog.py
RENAMED
|
File without changes
|
{moleditpy_linux-2.8.2 → moleditpy_linux-2.8.3}/src/moleditpy_linux/modules/zoomable_view.py
RENAMED
|
File without changes
|