From 9eb9e061ffb91f9bea5349f85a286f3f1c96b50d Mon Sep 17 00:00:00 2001 From: Diego Prada Date: Sat, 16 Mar 2024 18:06:20 -0600 Subject: [PATCH] In process of adding bonds --- molsysmt/build/__init__.py | 1 + molsysmt/build/add_bonds.py | 22 ++++++ molsysmt/build/add_missing_bonds.py | 29 ++++--- molsysmt/form/molsysmt_MolSys/__init__.py | 1 + molsysmt/form/molsysmt_MolSys/add_bonds.py | 10 +++ .../{add.py => add_from_system.py} | 4 +- molsysmt/native/topology.py | 12 +++ sandbox/Test_2nzt.ipynb | 79 ++++++++++++------- 8 files changed, 115 insertions(+), 43 deletions(-) create mode 100644 molsysmt/build/add_bonds.py create mode 100644 molsysmt/form/molsysmt_MolSys/add_bonds.py rename molsysmt/form/molsysmt_MolSys/{add.py => add_from_system.py} (64%) diff --git a/molsysmt/build/__init__.py b/molsysmt/build/__init__.py index f3eb056e7..109cfc8d7 100644 --- a/molsysmt/build/__init__.py +++ b/molsysmt/build/__init__.py @@ -1,3 +1,4 @@ +from .add_bonds import add_bonds from .add_missing_hydrogens import add_missing_hydrogens from .add_missing_heavy_atoms import add_missing_heavy_atoms from .add_missing_terminal_cappings import add_missing_terminal_cappings diff --git a/molsysmt/build/add_bonds.py b/molsysmt/build/add_bonds.py new file mode 100644 index 000000000..436aeac18 --- /dev/null +++ b/molsysmt/build/add_bonds.py @@ -0,0 +1,22 @@ +from molsysmt._private.exceptions import NotImplementedMethodError +from molsysmt._private.digestion import digest +from molsysmt._private.variables import is_all + +@digest() +def add_bonds(molecular_system, bonded_atom_pairs, in_place=True, skip_digestion=False): + + from molsysmt.basic import where_is_attribute + from molsysmt.form import _dict_modules + + if in_place: + + item, form = where_is_attribute(molecular_system, 'bonded_atom_pairs', check_if_None=False, + skip_digestion=True) + + add_bonds_function = getattr(_dict_modules[form], f'add_bonds') + add_bonds_function(item, bonded_atom_pairs) + + else: + + raise NotImplementedMethodError + diff --git a/molsysmt/build/add_missing_bonds.py b/molsysmt/build/add_missing_bonds.py index 33a712fea..dda8d9397 100644 --- a/molsysmt/build/add_missing_bonds.py +++ b/molsysmt/build/add_missing_bonds.py @@ -1,23 +1,28 @@ -from molsysmt._private.exceptions import * -from molsysmt._private.digestion import * - -def add_missing_bonds(molecular_system, threshold='2 angstroms', engine='MolSysMT', check=True): +from molsysmt._private.exceptions import NotImplementedMethodError +from molsysmt._private.digestion import digest +from molsysmt._private.variables import is_all + +@digest() +def add_missing_bonds(molecular_system, threshold='2 angstroms', selection='all', + structure_indices=0, syntax='MolSysMT', engine='MolSysMT', + with_templates=True, with_distances=True, skip_digestion=False): """ To be written soon... """ - if check: + if engine=='MolSysMT': - digest_single_molecular_system(molecular_system) - engine = digest_engine(engine) + from molsysmt.build import get_missing_bonds + from molsysmt.build import add_bonds - from molsysmt.basic import convert, get_form + bonds = get_missing_bonds(molecular_system, threshold=threshold, selection=selection, + structure_indices=structure_indices, syntax=syntax, + with_templates=with_templates, with_distances=with_distances, + skip_digestion=True) - output_molecular_system = None - form_in = get_form(molecular_system) - form_out = form_in + add_bonds(molecular_system, bonds, in_place=True) - if engine=="ParmEd": + elif engine=="ParmEd": raise NotImplementedError diff --git a/molsysmt/form/molsysmt_MolSys/__init__.py b/molsysmt/form/molsysmt_MolSys/__init__.py index 8c60b35eb..ddeca4a31 100644 --- a/molsysmt/form/molsysmt_MolSys/__init__.py +++ b/molsysmt/form/molsysmt_MolSys/__init__.py @@ -11,6 +11,7 @@ from .copy import copy from .add import add from .merge import merge +from .add_bonds import add_bonds from .append_structures import append_structures from .get_topological_attributes import * from .get_structural_attributes import * diff --git a/molsysmt/form/molsysmt_MolSys/add_bonds.py b/molsysmt/form/molsysmt_MolSys/add_bonds.py new file mode 100644 index 000000000..785cfa23f --- /dev/null +++ b/molsysmt/form/molsysmt_MolSys/add_bonds.py @@ -0,0 +1,10 @@ +from molsysmt._private.exceptions import NotImplementedMethodError +from molsysmt._private.digestion import digest +from molsysmt import pyunitwizard as puw +import numpy as np + +@digest(form='molsysmt.MolSys') +def add_bonds(item, bonded_atom_pairs, skip_digestion=False): + + item.topology.add_bonds(bonded_atom_pairs, skip_digestion=True) + diff --git a/molsysmt/form/molsysmt_MolSys/add.py b/molsysmt/form/molsysmt_MolSys/add_from_system.py similarity index 64% rename from molsysmt/form/molsysmt_MolSys/add.py rename to molsysmt/form/molsysmt_MolSys/add_from_system.py index 0db0d38c9..1f898bb06 100644 --- a/molsysmt/form/molsysmt_MolSys/add.py +++ b/molsysmt/form/molsysmt_MolSys/add_from_system.py @@ -3,8 +3,8 @@ from molsysmt import pyunitwizard as puw import numpy as np -@digest(form='molsysmt.MolSys', to_form='molsysmt.MolSys') -def add(to_item, item, atom_indices='all', structure_indices='all', skip_digestion=False): +@digest(to_form='molsysmt.MolSys', from_form='molsysmt.MolSys') +def add(to_item, from_item, atom_indices='all', structure_indices='all', skip_digestion=False): to_item.add(item, atom_indices=atom_indices, structure_indices=structure_indices, skip_digestion=True) diff --git a/molsysmt/native/topology.py b/molsysmt/native/topology.py index 06f3aa048..36aca1dbf 100644 --- a/molsysmt/native/topology.py +++ b/molsysmt/native/topology.py @@ -307,6 +307,18 @@ def copy(self): return tmp_item + def add_bonds(self, bonded_atom_pairs, skip_digestion=False): + + bonded_atom_pairs = np.array(bonded_atom_pairs) + n_bonds = bonded_atom_pairs.shape[0] + + aux_bonds_dataframe = Bonds_DataFrame(n_bonds=n_bonds) + aux_bonds_dataframe.atom1_index=bonded_atom_pairs[:,0] + aux_bonds_dataframe.atom2_index=bonded_atom_pairs[:,1] + + + df_concatenado = pd.concat([df_original, nuevas_filas], ignore_index=True) + def add_missing_bonds(self, selection='all', syntax='MolSysMT', skip_digestion=False): from molsysmt.build import get_missing_bonds as _get_missing_bonds diff --git a/sandbox/Test_2nzt.ipynb b/sandbox/Test_2nzt.ipynb index a444f051a..bda63f0f0 100644 --- a/sandbox/Test_2nzt.ipynb +++ b/sandbox/Test_2nzt.ipynb @@ -28,7 +28,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "43d00da87d8f4eb9ab66f260776766db", + "model_id": "aa9738c1f95c4ac1a9b2860e80c5dc29", "version_major": 2, "version_minor": 0 }, @@ -44,7 +44,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "a521ba75-1a05-4d64-b906-448f38e27101", "metadata": {}, "outputs": [], @@ -54,42 +54,63 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "id": "675072b0-c2db-4296-9363-7b287c564b03", "metadata": {}, - "outputs": [ - { - "ename": "AttributeError", - "evalue": "'str' object has no attribute 'entry'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[5], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m molsys \u001b[38;5;241m=\u001b[39m \u001b[43mmsm\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconvert\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfile\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/repos@uibcdf/MolSysMT/molsysmt/_private/digestion/digest.py:122\u001b[0m, in \u001b[0;36mdigest..digestor..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 120\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m func(all_args[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mself\u001b[39m\u001b[38;5;124m'\u001b[39m], \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mfinal_args)\n\u001b[1;32m 121\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 122\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mfinal_args\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/repos@uibcdf/MolSysMT/molsysmt/basic/convert.py:530\u001b[0m, in \u001b[0;36mconvert\u001b[0;34m(molecular_system, to_form, selection, structure_indices, syntax, verbose, skip_digestion, **kwargs)\u001b[0m\n\u001b[1;32m 527\u001b[0m \u001b[38;5;66;03m# If one to one\u001b[39;00m\n\u001b[1;32m 528\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(from_form, (\u001b[38;5;28mlist\u001b[39m, \u001b[38;5;28mtuple\u001b[39m)):\n\u001b[0;32m--> 530\u001b[0m output \u001b[38;5;241m=\u001b[39m \u001b[43m_convert_one_to_one\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmolecular_system\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfrom_form\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mto_form\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mto_form\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mselection\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mselection\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstructure_indices\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstructure_indices\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 531\u001b[0m \u001b[43m \u001b[49m\u001b[43msyntax\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msyntax\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mverbose\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mverbose\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 533\u001b[0m \u001b[38;5;66;03m# If multiple to one\u001b[39;00m\n\u001b[1;32m 534\u001b[0m \n\u001b[1;32m 535\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 536\u001b[0m \n\u001b[1;32m 537\u001b[0m \u001b[38;5;66;03m# conversions in private shortcuts\u001b[39;00m\n\u001b[1;32m 538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mtuple\u001b[39m(\u001b[38;5;28msorted\u001b[39m(from_form)) \u001b[38;5;129;01min\u001b[39;00m _multiple_conversion_shortcuts:\n", - "File \u001b[0;32m~/repos@uibcdf/MolSysMT/molsysmt/basic/convert.py:84\u001b[0m, in \u001b[0;36m_convert_one_to_one\u001b[0;34m(molecular_system, from_form, to_form, selection, structure_indices, syntax, verbose, **kwargs)\u001b[0m\n\u001b[1;32m 81\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(missing_arguments)\u001b[38;5;241m>\u001b[39m\u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m 82\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m NotCompatibleConversionError(from_form, to_form, missing_arguments)\n\u001b[0;32m---> 84\u001b[0m output \u001b[38;5;241m=\u001b[39m \u001b[43mfunction\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmolecular_system\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mconversion_arguments\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 86\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m (\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmolsysmt.MolSys\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;129;01min\u001b[39;00m _dict_modules[from_form]\u001b[38;5;241m.\u001b[39m_convert_to) \u001b[38;5;129;01mand\u001b[39;00m (to_form \u001b[38;5;129;01min\u001b[39;00m _dict_modules[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmolsysmt.MolSys\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39m_convert_to):\n\u001b[1;32m 88\u001b[0m output \u001b[38;5;241m=\u001b[39m _convert_one_to_one(molecular_system, from_form, to_form\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmolsysmt.MolSys\u001b[39m\u001b[38;5;124m'\u001b[39m, selection\u001b[38;5;241m=\u001b[39mselection,\n\u001b[1;32m 89\u001b[0m structure_indices\u001b[38;5;241m=\u001b[39mstructure_indices, syntax\u001b[38;5;241m=\u001b[39msyntax, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", - "File \u001b[0;32m~/repos@uibcdf/MolSysMT/molsysmt/_private/digestion/digest.py:52\u001b[0m, in \u001b[0;36mdigest..digestor..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 48\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(func)\n\u001b[1;32m 49\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 51\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m kwargs\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mskip_digestion\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;28;01mFalse\u001b[39;00m):\n\u001b[0;32m---> 52\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 54\u001b[0m \u001b[38;5;66;03m# Define caller\u001b[39;00m\n\u001b[1;32m 56\u001b[0m caller \u001b[38;5;241m=\u001b[39m func\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__module__\u001b[39m\u001b[38;5;241m+\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;241m+\u001b[39mfunc\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m\n", - "File \u001b[0;32m~/repos@uibcdf/MolSysMT/molsysmt/form/file_pdb/to_molsysmt_MolSys.py:11\u001b[0m, in \u001b[0;36mto_molsysmt_MolSys\u001b[0;34m(item, atom_indices, structure_indices, get_missing_bonds, skip_digestion)\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmolsysmt_PDBFileHandler\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m to_molsysmt_MolSys \u001b[38;5;28;01mas\u001b[39;00m molsysmt_PDBFileHandler_to_molsysmt_MolSys\n\u001b[1;32m 10\u001b[0m tmp_item \u001b[38;5;241m=\u001b[39m to_molsysmt_PDBFileHandler(item, skip_digestion\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m---> 11\u001b[0m tmp_item \u001b[38;5;241m=\u001b[39m \u001b[43mmolsysmt_PDBFileHandler_to_molsysmt_MolSys\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43matom_indices\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43matom_indices\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 12\u001b[0m \u001b[43m \u001b[49m\u001b[43mstructure_indices\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstructure_indices\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 13\u001b[0m \u001b[43m \u001b[49m\u001b[43mget_missing_bonds\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mget_missing_bonds\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 14\u001b[0m \u001b[43m \u001b[49m\u001b[43mskip_digestion\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 16\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m tmp_item\n", - "File \u001b[0;32m~/repos@uibcdf/MolSysMT/molsysmt/_private/digestion/digest.py:52\u001b[0m, in \u001b[0;36mdigest..digestor..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 48\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(func)\n\u001b[1;32m 49\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 51\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m kwargs\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mskip_digestion\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;28;01mFalse\u001b[39;00m):\n\u001b[0;32m---> 52\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 54\u001b[0m \u001b[38;5;66;03m# Define caller\u001b[39;00m\n\u001b[1;32m 56\u001b[0m caller \u001b[38;5;241m=\u001b[39m func\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__module__\u001b[39m\u001b[38;5;241m+\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;241m+\u001b[39mfunc\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m\n", - "File \u001b[0;32m~/repos@uibcdf/MolSysMT/molsysmt/form/molsysmt_PDBFileHandler/to_molsysmt_MolSys.py:34\u001b[0m, in \u001b[0;36mto_molsysmt_MolSys\u001b[0;34m(item, atom_indices, structure_indices, get_missing_bonds, skip_digestion)\u001b[0m\n\u001b[1;32m 31\u001b[0m former_chain_name \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 32\u001b[0m aux_dict_chain \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m---> 34\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m atom_record \u001b[38;5;129;01min\u001b[39;00m \u001b[43mitem\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mentry\u001b[49m\u001b[38;5;241m.\u001b[39mcoordinate\u001b[38;5;241m.\u001b[39mmodel[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mrecord:\n\u001b[1;32m 36\u001b[0m atom_id_array\u001b[38;5;241m.\u001b[39mappend(atom_record\u001b[38;5;241m.\u001b[39mserial)\n\u001b[1;32m 37\u001b[0m atom_name_array\u001b[38;5;241m.\u001b[39mappend(atom_record\u001b[38;5;241m.\u001b[39mname)\n", - "\u001b[0;31mAttributeError\u001b[0m: 'str' object has no attribute 'entry'" - ] - } - ], + "outputs": [], "source": [ - "molsys = msm.convert(file)" + "molsys = msm.convert(file, get_missing_bonds=True)" ] }, { "cell_type": "code", - "execution_count": null, - "id": "74caa585-af95-44c6-a674-7f53d577b7e3", + "execution_count": 6, + "id": "8d511c53-0ae3-49e1-a9cc-b4b76c6907ce", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
formn_atomsn_groupsn_componentsn_chainsn_moleculesn_entitiesn_structures
molsysmt.MolSys715891701001
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "%%time\n", - "molsys = msm.convert(handler, 'molsysmt.MolSys', get_missing_bonds=True)" + "msm.info(molsys)" ] }, {