From 97b2404973321796d130e86c8fcff19f41a8b18f Mon Sep 17 00:00:00 2001 From: skfegan Date: Thu, 27 Mar 2025 16:56:06 +0000 Subject: [PATCH 01/24] removing documentation that relates to previous versions of the code --- docs/Run_as_script.rst | 196 - docs/Script_example.rst | 10 - docs/api.rst | 89 +- ...Collection.DataContainer.DataContainer.rst | 37 - ...ClassCollection.PoseidonClass.Poseidon.rst | 23 - ...on.PoseidonClass.Poseidon.run_analysis.rst | 6 - ...ssCollection.PoseidonClass.Poseidon_mp.rst | 23 - ...PoseidonClass.Poseidon_mp.run_analysis.rst | 6 - ...ropyFunctions.compute_entropy_UA_level.rst | 6 - ....compute_entropy_UA_level_multiprocess.rst | 6 - ...unctions.compute_entropy_residue_level.rst | 6 - ...s.compute_entropy_whole_molecule_level.rst | 6 - ...ions.compute_topographical_entropy0_BB.rst | 6 - ...ions.compute_topographical_entropy0_SC.rst | 6 - ...ions.compute_topographical_entropy1_BB.rst | 6 - ...ions.compute_topographical_entropy1_SC.rst | 6 - ...ions.compute_topographical_entropy_AEM.rst | 6 - ...IO.MDAUniverseHelper.new_U_select_atom.rst | 6 - ...O.MDAUniverseHelper.new_U_select_frame.rst | 6 - ...opy.IO.MDAUniverseHelper.read_universe.rst | 6 - ...py.IO.MDAUniverseHelper.write_universe.rst | 6 - ...formationFunctions.assign_conformation.rst | 6 + ...opy.calculations.ConformationFunctions.rst | 12 + ...ntropyFunctions.conformational_entropy.rst | 6 + ...EntropyFunctions.frequency_calculation.rst | 6 + ...EntropyFunctions.orientational_entropy.rst | 6 + ...eEntropy.calculations.EntropyFunctions.rst | 15 + ...s.EntropyFunctions.vibrational_entropy.rst | 6 + ...ns.GeometricFunctions.create_submatrix.rst | 6 + ...tricFunctions.filter_zero_rows_columns.rst | 6 + ...lations.GeometricFunctions.get_avg_pos.rst | 6 + ...lculations.GeometricFunctions.get_axes.rst | 6 + ...culations.GeometricFunctions.get_beads.rst | 6 + ...s.GeometricFunctions.get_sphCoord_axes.rst | 6 + ...GeometricFunctions.get_weighted_forces.rst | 6 + ...eometricFunctions.get_weighted_torques.rst | 6 + ...ntropy.calculations.GeometricFunctions.rst | 19 + ...culations.LevelFunctions.get_dihedrals.rst | 6 + ...lculations.LevelFunctions.get_matrices.rst | 6 + ...odeEntropy.calculations.LevelFunctions.rst | 14 + ...culations.LevelFunctions.select_levels.rst | 6 + ...Entropy.calculations.MDAUniverseHelper.rst | 15 + ...ntropy.calculations.NeighbourFunctions.rst | 12 + ...tropy.calculations.UnitsAndConversions.rst | 13 + docs/autosummary/CodeEntropy.calculations.rst | 19 + .../CodeEntropy.config.arg_config_manager.rst | 12 + .../CodeEntropy.config.data_logger.rst | 12 + .../CodeEntropy.config.logging_config.rst | 12 + docs/autosummary/CodeEntropy.config.rst | 15 + ...CodeEntropy.main_mcc.create_job_folder.rst | 6 + .../autosummary/CodeEntropy.main_mcc.main.rst | 6 + docs/conf.py | 2 +- docs/faq.rst | 5 +- docs/getting_started.rst | 123 +- docs/index.rst | 4 +- docs/notebook/Capped_protein_Example.ipynb | 564 --- docs/notebook/DNA_example.ipynb | 749 ---- docs/notebook/Protein_example.ipynb | 3928 ----------------- docs/requirements.txt | 2 - docs/requirements.yaml | 13 - 60 files changed, 350 insertions(+), 5786 deletions(-) delete mode 100644 docs/Run_as_script.rst delete mode 100644 docs/Script_example.rst delete mode 100644 docs/autosummary/CodeEntropy.ClassCollection.DataContainer.DataContainer.rst delete mode 100644 docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon.rst delete mode 100644 docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon.run_analysis.rst delete mode 100644 docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon_mp.rst delete mode 100644 docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon_mp.run_analysis.rst delete mode 100644 docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_UA_level.rst delete mode 100644 docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_UA_level_multiprocess.rst delete mode 100644 docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_residue_level.rst delete mode 100644 docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_whole_molecule_level.rst delete mode 100644 docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy0_BB.rst delete mode 100644 docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy0_SC.rst delete mode 100644 docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy1_BB.rst delete mode 100644 docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy1_SC.rst delete mode 100644 docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy_AEM.rst delete mode 100644 docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.new_U_select_atom.rst delete mode 100644 docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.new_U_select_frame.rst delete mode 100644 docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.read_universe.rst delete mode 100644 docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.write_universe.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.ConformationFunctions.assign_conformation.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.ConformationFunctions.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.EntropyFunctions.conformational_entropy.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.EntropyFunctions.frequency_calculation.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.EntropyFunctions.orientational_entropy.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.EntropyFunctions.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.EntropyFunctions.vibrational_entropy.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.create_submatrix.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.filter_zero_rows_columns.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_avg_pos.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_axes.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_beads.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_sphCoord_axes.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_forces.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_torques.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_dihedrals.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_matrices.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.LevelFunctions.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.LevelFunctions.select_levels.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.MDAUniverseHelper.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.NeighbourFunctions.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.UnitsAndConversions.rst create mode 100644 docs/autosummary/CodeEntropy.calculations.rst create mode 100644 docs/autosummary/CodeEntropy.config.arg_config_manager.rst create mode 100644 docs/autosummary/CodeEntropy.config.data_logger.rst create mode 100644 docs/autosummary/CodeEntropy.config.logging_config.rst create mode 100644 docs/autosummary/CodeEntropy.config.rst create mode 100644 docs/autosummary/CodeEntropy.main_mcc.create_job_folder.rst create mode 100644 docs/autosummary/CodeEntropy.main_mcc.main.rst delete mode 100644 docs/notebook/Capped_protein_Example.ipynb delete mode 100644 docs/notebook/DNA_example.ipynb delete mode 100644 docs/notebook/Protein_example.ipynb delete mode 100644 docs/requirements.txt delete mode 100644 docs/requirements.yaml diff --git a/docs/Run_as_script.rst b/docs/Run_as_script.rst deleted file mode 100644 index 0f6c92a..0000000 --- a/docs/Run_as_script.rst +++ /dev/null @@ -1,196 +0,0 @@ -Run As Script -================= -CodeEntropy can also be run as a script for more advanced operations. - -.. _load-custom: - -1. Loading data -------------------- -First you should load the data into an MDanalysis universe. For this code, MDanalysis must be able to read dihedral and force directly from the trajectory files -See `MDAnalysis Format Overview `_ for more information. - -.. code-block:: python - - import MDAnalysis as mda - tprfile = "data/1AKI_ws_60.tpr" - trrfile = "data/1AKI_ws_60.trr" - u = mda.Universe(tprfile, trrfile) - - -Non-standard file -^^^^^^^^^^^^^^^^^^ -You may be able to load non standard file by turning the force data into an array and create a new universe by combining the force and trajectory data. - -.. code-block:: python - - import MDAnalysis as mda - from MDAnalysis.analysis.base import AnalysisFromFunction - from MDAnalysis.coordinates.memory import MemoryReader - - topo_file = "data/molecules.prmtop" - traj_file = "data/Trajectory_npt_1.data.gz" - ## remember to edit the format so that the header is "id mass x y z" otherwise MDAnalysis won't load the data due to checks by LAMMPS parser - force_file = "data/Forces_npt_1.data" - # loading data into individual universe - main = mda.Universe(topo_file, traj_file, atom_style='id type x y z' ,format="LAMMPSDUMP") - force = mda.Universe(topo_file, force_file, atom_style='id type x y z' ,format="LAMMPSDUMP") - # selection for accessing values - # the 'all' can be replaced by other selection string for - select_atom = main.select_atoms('all') - select_atom_force = force.select_atoms('all') - # loading values from universe - # this is done by generating a tuple from AnalysisFromFunction to traverse through the entire data and loading the selected data into a tuple - coordinates = AnalysisFromFunction(lambda ag: ag.positions.copy(), select_atom).run().results['timeseries'] - forces = AnalysisFromFunction(lambda ag: ag.positions.copy(), select_atom_force).run().results['timeseries'] - ## dimension is also required for poseidon analysis - dimensions = AnalysisFromFunction(lambda ag: ag.dimensions.copy(), select_atom).run().results['timeseries'] - # create a new universe - u2 = mda.Merge(select_atom) - # loading trajectory data using MemoryReader from tuples, the system is not in memory - u2.load_new(coordinates, format=MemoryReader, forces=forces, dimensions=dimensions) - -2a. Solute Analysis ------------------------- -To start solute analysis, you must load your data into the solute data container but you may want to trim the data using ``CodeEntropy.IO.MDAUniverseHelper`` functions. - -.. code-block:: python - - from CodeEntropy.ClassCollection import DataContainer as DC - from CodeEntropy.IO import MDAUniverseHelper as MDAHelper - start = 0 - end = 21 - step = 2 - reduced_frame = MDAHelper.new_U_select_frame(u, start, end, step) - selection_string = "protein" - reduced_atom = MDAHelper.new_U_select_atom(reduced_frame, selection_string) - - dataContainer = DC.DataContainer(reduced_atom) - -You can now calculate entropy at different levels with the following function using information from the ``dataContainer`` - -.. code-block:: python - - from CodeEntropy.FunctionCollection import EntropyFunctions as EF - tScale = 1.0 - fScale = 1.0 - temper = 300.0 #K - axis_list = ['C', 'CA', 'N'] - outfile = 'outfile.out' - # Whole molecule level - wm_entropyFF, wm_entropyTT = EF.compute_entropy_whole_molecule_level( - arg_hostDataContainer = dataContainer, - arg_outFile = outfile, - arg_selector = "protein", - arg_moutFile = 'WholeMolecule_matrix.out', - arg_nmdFile = 'WholeMolecule_mode_spectra.out', - arg_fScale = fScale, - arg_tScale = tScale, - arg_temper = temper, - arg_verbose = 5 - ) - - #residue level - res_entropyFF, res_entropyTT = EF.compute_entropy_residue_level( - arg_hostDataContainer = dataContainer, - arg_outFile = outfile, - arg_selector = 'all', - arg_moutFile = 'ResidueLevel_matrix.out', - arg_nmdFile = 'ResidueLevel_mode_spectra.out', - arg_fScale = fScale, - arg_tScale = tScale, - arg_temper = temper, - arg_verbose = 5, - arg_axis_list = axis_list, - ) - - #United atom level - UA_entropyFF, UA_entropyTT, res_df = EF.compute_entropy_UA_level( - arg_hostDataContainer = dataContainer, - arg_outFile = outfile, - arg_selector = 'all', - arg_moutFile = 'AtomLevel_matrix.out', - arg_nmdFile = 'AtomLevel_mode_spectra.out', - arg_fScale = fScale, - arg_tScale = tScale, - arg_temper = temper, - arg_verbose = 1, - arg_axis_list = axis_list, - arg_csv_out= 'AtomLevel_bead_entropy.csv', - ) - UA_entropyFF, UA_entropyTT, res_df = EF.compute_entropy_UA_level_multiprocess( - arg_hostDataContainer = dataContainer, - arg_outFile = outfile, - arg_selector = 'all', - arg_moutFile = 'AtomLevel_matrix.out', - arg_nmdFile = 'AtomLevel_mode_spectra.out', - arg_fScale = fScale, - arg_tScale = tScale, - arg_temper = temper, - arg_verbose = 1, - arg_csv_out= 'AtomLevel_bead_entropy.csv', - arg_axis_list = axis_list, - arg_thread= 4, - ) - - #Topographical Level - result_entropy0_SC = EntropyFunctions.compute_topographical_entropy0_SC( - arg_hostDataContainer = dataContainer, - arg_selector = "all", - arg_outFile = outfile, - arg_verbose = 5 - ) - - print(f"result_entropy0_SC = {result_entropy0_SC}") - - result_entropy0_BB = EntropyFunctions.compute_topographical_entropy0_BB( - arg_hostDataContainer = dataContainer, - arg_selector = "all", - arg_outFile = outfile, - arg_verbose = 5 - ) - - print(f"result_entropy0_BB = {result_entropy0_BB}") - - - result_entropy1_SC = EntropyFunctions.compute_topographical_entropy1_SC( - arg_hostDataContainer = dataContainer, - arg_selector = "all", - arg_outFile = outfile, - arg_verbose = 5 - ) - - print(f"result_entropy1_SC= {result_entropy1_SC}") - - - result_entropy1_BB = EntropyFunctions.compute_topographical_entropy1_BB( - arg_hostDataContainer = dataContainer, - arg_selector = "all", - arg_outFile = outfile, - arg_verbose = 5 - ) - print(f"result_entropy1_BB= {result_entropy1_BB}") - - result_entropyAEM = EntropyFunctions.compute_topographical_entropy_AEM( - arg_hostDataContainer = dataContainer, - arg_selector = "all", - arg_outFile = outfile, - arg_verbose = 5 - ) - - print(f"result_entropyAEM = {result_entropyAEM}") - -2b. Solvent Analysis ------------------------- - -To run solvent analysis you must load the data into the poseidon object - -.. code-block:: python - - poseidon_object = Poseidon(container=main, start=0, end=10, water=('SOL',), excludedResnames=("CL",), verbose=False) - -After that, add the level/ analysis you want to run to the `level_list` arguments and run with `run_analysis`. There are 4 levels ``['moleculeLevel', 'residLevel_resname', 'atomLevel', 'soluteContacts']`` - -.. code-block:: python - - poseidon_object.run_analysis(level_list=['moleculeLevel', 'residLevel_resname', 'atomLevel', 'soluteContacts'], verbose=False) - diff --git a/docs/Script_example.rst b/docs/Script_example.rst deleted file mode 100644 index d74903d..0000000 --- a/docs/Script_example.rst +++ /dev/null @@ -1,10 +0,0 @@ -Script Example -=================== - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - notebook/DNA_example.ipynb - notebook/Capped_protein_Example.ipynb - notebook/Protein_example.ipynb \ No newline at end of file diff --git a/docs/api.rst b/docs/api.rst index 9e5ebd8..746f8c3 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -1,81 +1,62 @@ API Documentation ================= -MDAnalysis Helper -------------------- +Main +---- .. autosummary:: - :toctree: autosummary + :toctree: autosummary - CodeEntropy.IO.MDAUniverseHelper.new_U_select_frame - CodeEntropy.IO.MDAUniverseHelper.new_U_select_atom - CodeEntropy.IO.MDAUniverseHelper.write_universe - CodeEntropy.IO.MDAUniverseHelper.read_universe + CodeEntropy.main_mcc.create_job_folder + CodeEntropy.main_mcc.main -Solute -------- +Calculations +------------ -Import Data -^^^^^^^^^^^^^^^ +Conformation Functions +^^^^^^^^^^^^^^^^^^^^^^ .. autosummary:: :toctree: autosummary - CodeEntropy.ClassCollection.DataContainer.DataContainer - -Solute Entropy Calculation -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Whole Molecule Level -"""""""""""""""""""""""" + CodeEntropy.calculations.ConformationFunctions.assign_conformation +Entropy Functions +^^^^^^^^^^^^^^^^^ .. autosummary:: :toctree: autosummary - CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_whole_molecule_level - -Residue Level -"""""""""""""""""""" + CodeEntropy.calculations.EntropyFunctions.frequency_calculation + CodeEntropy.calculations.EntropyFunctions.vibrational_entropy + CodeEntropy.calculations.EntropyFunctions.conformational_entropy + CodeEntropy.calculations.EntropyFunctions.orientational_entropy +Geometric Functions +^^^^^^^^^^^^^^^^^^^ .. autosummary:: :toctree: autosummary - - CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_residue_level - -United-Atom Level -""""""""""""""""""" -.. autosummary:: - :toctree: autosummary - - CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_UA_level - CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_UA_level_multiprocess + CodeEntropy.calculations.GeometricFunctions.get_beads + CodeEntropy.calculations.GeometricFunctions.get_axes + CodeEntropy.calculations.GeometricFunctions.get_avg_pos + CodeEntropy.calculations.GeometricFunctions.get_sphCoord_axes + CodeEntropy.calculations.GeometricFunctions.get_weighted_forces + CodeEntropy.calculations.GeometricFunctions.get_weighted_torques + CodeEntropy.calculations.GeometricFunctions.create_submatrix + CodeEntropy.calculations.GeometricFunctions.filter_zero_rows_columns -Topographical Level -"""""""""""""""""""""""" +Level Functions +^^^^^^^^^^^^^^^^^^^ .. autosummary:: :toctree: autosummary - - CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy0_SC - CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy0_BB - CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy1_SC - CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy1_BB - CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy_AEM -Solvent --------- + CodeEntropy.calculations.LevelFunctions.select_levels + CodeEntropy.calculations.LevelFunctions.get_matrices + CodeEntropy.calculations.LevelFunctions.get_dihedrals -Import Data -^^^^^^^^^^^^^^^ +Config +------ .. autosummary:: :toctree: autosummary + :recursive: - CodeEntropy.ClassCollection.PoseidonClass.Poseidon - CodeEntropy.ClassCollection.PoseidonClass.Poseidon_mp - -Run Analysis -^^^^^^^^^^^^^^^^ - -.. autosummary:: - :toctree: autosummary + CodeEntropy.config - CodeEntropy.ClassCollection.PoseidonClass.Poseidon.run_analysis - CodeEntropy.ClassCollection.PoseidonClass.Poseidon_mp.run_analysis \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.ClassCollection.DataContainer.DataContainer.rst b/docs/autosummary/CodeEntropy.ClassCollection.DataContainer.DataContainer.rst deleted file mode 100644 index cf5a7bf..0000000 --- a/docs/autosummary/CodeEntropy.ClassCollection.DataContainer.DataContainer.rst +++ /dev/null @@ -1,37 +0,0 @@ -CodeEntropy.ClassCollection.DataContainer.DataContainer -======================================================= - -.. currentmodule:: CodeEntropy.ClassCollection.DataContainer - -.. autoclass:: DataContainer - - - .. automethod:: __init__ - - - .. rubric:: Methods - - .. autosummary:: - - ~DataContainer.__init__ - ~DataContainer.add_dihedral - ~DataContainer.get_center_of_mass - ~DataContainer.get_minmax - ~DataContainer.get_moment_of_inertia_tensor_lab - ~DataContainer.get_principal_axes - ~DataContainer.initialize_ndarrays - ~DataContainer.print_attributes - ~DataContainer.reset_rotationAxesArray - ~DataContainer.reset_translationAxesArray - ~DataContainer.update_localCoords - ~DataContainer.update_localCoords_of_all_atoms - ~DataContainer.update_localForces - ~DataContainer.update_localForces_of_all_atoms - ~DataContainer.update_rotationAxesArray_at - ~DataContainer.update_translationAxesArray_at - - - - - - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon.rst b/docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon.rst deleted file mode 100644 index c011976..0000000 --- a/docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon.rst +++ /dev/null @@ -1,23 +0,0 @@ -CodeEntropy.ClassCollection.PoseidonClass.Poseidon -================================================== - -.. currentmodule:: CodeEntropy.ClassCollection.PoseidonClass - -.. autoclass:: Poseidon - - - .. automethod:: __init__ - - - .. rubric:: Methods - - .. autosummary:: - - ~Poseidon.__init__ - ~Poseidon.run_analysis - - - - - - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon.run_analysis.rst b/docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon.run_analysis.rst deleted file mode 100644 index b1c1367..0000000 --- a/docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon.run_analysis.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.ClassCollection.PoseidonClass.Poseidon.run\_analysis -================================================================ - -.. currentmodule:: CodeEntropy.ClassCollection.PoseidonClass - -.. automethod:: Poseidon.run_analysis \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon_mp.rst b/docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon_mp.rst deleted file mode 100644 index 741df18..0000000 --- a/docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon_mp.rst +++ /dev/null @@ -1,23 +0,0 @@ -CodeEntropy.ClassCollection.PoseidonClass.Poseidon\_mp -====================================================== - -.. currentmodule:: CodeEntropy.ClassCollection.PoseidonClass - -.. autoclass:: Poseidon_mp - - - .. automethod:: __init__ - - - .. rubric:: Methods - - .. autosummary:: - - ~Poseidon_mp.__init__ - ~Poseidon_mp.run_analysis - - - - - - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon_mp.run_analysis.rst b/docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon_mp.run_analysis.rst deleted file mode 100644 index f396829..0000000 --- a/docs/autosummary/CodeEntropy.ClassCollection.PoseidonClass.Poseidon_mp.run_analysis.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.ClassCollection.PoseidonClass.Poseidon\_mp.run\_analysis -==================================================================== - -.. currentmodule:: CodeEntropy.ClassCollection.PoseidonClass - -.. automethod:: Poseidon_mp.run_analysis \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_UA_level.rst b/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_UA_level.rst deleted file mode 100644 index b4aad95..0000000 --- a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_UA_level.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.FunctionCollection.EntropyFunctions.compute\_entropy\_UA\_level -=========================================================================== - -.. currentmodule:: CodeEntropy.FunctionCollection.EntropyFunctions - -.. autofunction:: compute_entropy_UA_level \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_UA_level_multiprocess.rst b/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_UA_level_multiprocess.rst deleted file mode 100644 index 47ecba7..0000000 --- a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_UA_level_multiprocess.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.FunctionCollection.EntropyFunctions.compute\_entropy\_UA\_level\_multiprocess -========================================================================================= - -.. currentmodule:: CodeEntropy.FunctionCollection.EntropyFunctions - -.. autofunction:: compute_entropy_UA_level_multiprocess \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_residue_level.rst b/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_residue_level.rst deleted file mode 100644 index fab5b3a..0000000 --- a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_residue_level.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.FunctionCollection.EntropyFunctions.compute\_entropy\_residue\_level -================================================================================ - -.. currentmodule:: CodeEntropy.FunctionCollection.EntropyFunctions - -.. autofunction:: compute_entropy_residue_level \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_whole_molecule_level.rst b/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_whole_molecule_level.rst deleted file mode 100644 index 1ba2306..0000000 --- a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_entropy_whole_molecule_level.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.FunctionCollection.EntropyFunctions.compute\_entropy\_whole\_molecule\_level -======================================================================================== - -.. currentmodule:: CodeEntropy.FunctionCollection.EntropyFunctions - -.. autofunction:: compute_entropy_whole_molecule_level \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy0_BB.rst b/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy0_BB.rst deleted file mode 100644 index d47059a..0000000 --- a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy0_BB.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.FunctionCollection.EntropyFunctions.compute\_topographical\_entropy0\_BB -==================================================================================== - -.. currentmodule:: CodeEntropy.FunctionCollection.EntropyFunctions - -.. autofunction:: compute_topographical_entropy0_BB \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy0_SC.rst b/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy0_SC.rst deleted file mode 100644 index 127d631..0000000 --- a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy0_SC.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.FunctionCollection.EntropyFunctions.compute\_topographical\_entropy0\_SC -==================================================================================== - -.. currentmodule:: CodeEntropy.FunctionCollection.EntropyFunctions - -.. autofunction:: compute_topographical_entropy0_SC \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy1_BB.rst b/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy1_BB.rst deleted file mode 100644 index 74a0973..0000000 --- a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy1_BB.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.FunctionCollection.EntropyFunctions.compute\_topographical\_entropy1\_BB -==================================================================================== - -.. currentmodule:: CodeEntropy.FunctionCollection.EntropyFunctions - -.. autofunction:: compute_topographical_entropy1_BB \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy1_SC.rst b/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy1_SC.rst deleted file mode 100644 index e10ba8c..0000000 --- a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy1_SC.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.FunctionCollection.EntropyFunctions.compute\_topographical\_entropy1\_SC -==================================================================================== - -.. currentmodule:: CodeEntropy.FunctionCollection.EntropyFunctions - -.. autofunction:: compute_topographical_entropy1_SC \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy_AEM.rst b/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy_AEM.rst deleted file mode 100644 index 64e2ba1..0000000 --- a/docs/autosummary/CodeEntropy.FunctionCollection.EntropyFunctions.compute_topographical_entropy_AEM.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.FunctionCollection.EntropyFunctions.compute\_topographical\_entropy\_AEM -==================================================================================== - -.. currentmodule:: CodeEntropy.FunctionCollection.EntropyFunctions - -.. autofunction:: compute_topographical_entropy_AEM \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.new_U_select_atom.rst b/docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.new_U_select_atom.rst deleted file mode 100644 index ced165d..0000000 --- a/docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.new_U_select_atom.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.IO.MDAUniverseHelper.new\_U\_select\_atom -===================================================== - -.. currentmodule:: CodeEntropy.IO.MDAUniverseHelper - -.. autofunction:: new_U_select_atom \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.new_U_select_frame.rst b/docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.new_U_select_frame.rst deleted file mode 100644 index c7b3d4d..0000000 --- a/docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.new_U_select_frame.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.IO.MDAUniverseHelper.new\_U\_select\_frame -====================================================== - -.. currentmodule:: CodeEntropy.IO.MDAUniverseHelper - -.. autofunction:: new_U_select_frame \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.read_universe.rst b/docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.read_universe.rst deleted file mode 100644 index 7a145c7..0000000 --- a/docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.read_universe.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.IO.MDAUniverseHelper.read\_universe -=============================================== - -.. currentmodule:: CodeEntropy.IO.MDAUniverseHelper - -.. autofunction:: read_universe \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.write_universe.rst b/docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.write_universe.rst deleted file mode 100644 index 39d0046..0000000 --- a/docs/autosummary/CodeEntropy.IO.MDAUniverseHelper.write_universe.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.IO.MDAUniverseHelper.write\_universe -================================================ - -.. currentmodule:: CodeEntropy.IO.MDAUniverseHelper - -.. autofunction:: write_universe \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.ConformationFunctions.assign_conformation.rst b/docs/autosummary/CodeEntropy.calculations.ConformationFunctions.assign_conformation.rst new file mode 100644 index 0000000..9879c09 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.ConformationFunctions.assign_conformation.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.ConformationFunctions.assign\_conformation +=================================================================== + +.. currentmodule:: CodeEntropy.calculations.ConformationFunctions + +.. autofunction:: assign_conformation \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.ConformationFunctions.rst b/docs/autosummary/CodeEntropy.calculations.ConformationFunctions.rst new file mode 100644 index 0000000..309d6b4 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.ConformationFunctions.rst @@ -0,0 +1,12 @@ +CodeEntropy.calculations.ConformationFunctions +============================================== + +.. automodule:: CodeEntropy.calculations.ConformationFunctions + + + .. rubric:: Functions + + .. autosummary:: + + assign_conformation + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.conformational_entropy.rst b/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.conformational_entropy.rst new file mode 100644 index 0000000..05e9382 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.conformational_entropy.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.EntropyFunctions.conformational\_entropy +================================================================= + +.. currentmodule:: CodeEntropy.calculations.EntropyFunctions + +.. autofunction:: conformational_entropy \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.frequency_calculation.rst b/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.frequency_calculation.rst new file mode 100644 index 0000000..b006889 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.frequency_calculation.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.EntropyFunctions.frequency\_calculation +================================================================ + +.. currentmodule:: CodeEntropy.calculations.EntropyFunctions + +.. autofunction:: frequency_calculation \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.orientational_entropy.rst b/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.orientational_entropy.rst new file mode 100644 index 0000000..7605389 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.orientational_entropy.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.EntropyFunctions.orientational\_entropy +================================================================ + +.. currentmodule:: CodeEntropy.calculations.EntropyFunctions + +.. autofunction:: orientational_entropy \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.rst b/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.rst new file mode 100644 index 0000000..40b93c7 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.rst @@ -0,0 +1,15 @@ +CodeEntropy.calculations.EntropyFunctions +========================================= + +.. automodule:: CodeEntropy.calculations.EntropyFunctions + + + .. rubric:: Functions + + .. autosummary:: + + conformational_entropy + frequency_calculation + orientational_entropy + vibrational_entropy + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.vibrational_entropy.rst b/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.vibrational_entropy.rst new file mode 100644 index 0000000..917fe89 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.vibrational_entropy.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.EntropyFunctions.vibrational\_entropy +============================================================== + +.. currentmodule:: CodeEntropy.calculations.EntropyFunctions + +.. autofunction:: vibrational_entropy \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.create_submatrix.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.create_submatrix.rst new file mode 100644 index 0000000..ed7b4c0 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.create_submatrix.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.GeometricFunctions.create\_submatrix +============================================================= + +.. currentmodule:: CodeEntropy.calculations.GeometricFunctions + +.. autofunction:: create_submatrix \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.filter_zero_rows_columns.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.filter_zero_rows_columns.rst new file mode 100644 index 0000000..16efac1 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.filter_zero_rows_columns.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.GeometricFunctions.filter\_zero\_rows\_columns +======================================================================= + +.. currentmodule:: CodeEntropy.calculations.GeometricFunctions + +.. autofunction:: filter_zero_rows_columns \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_avg_pos.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_avg_pos.rst new file mode 100644 index 0000000..c7cf703 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_avg_pos.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.GeometricFunctions.get\_avg\_pos +========================================================= + +.. currentmodule:: CodeEntropy.calculations.GeometricFunctions + +.. autofunction:: get_avg_pos \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_axes.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_axes.rst new file mode 100644 index 0000000..b61372e --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_axes.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.GeometricFunctions.get\_axes +===================================================== + +.. currentmodule:: CodeEntropy.calculations.GeometricFunctions + +.. autofunction:: get_axes \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_beads.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_beads.rst new file mode 100644 index 0000000..ff2a882 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_beads.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.GeometricFunctions.get\_beads +====================================================== + +.. currentmodule:: CodeEntropy.calculations.GeometricFunctions + +.. autofunction:: get_beads \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_sphCoord_axes.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_sphCoord_axes.rst new file mode 100644 index 0000000..0dcec21 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_sphCoord_axes.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.GeometricFunctions.get\_sphCoord\_axes +=============================================================== + +.. currentmodule:: CodeEntropy.calculations.GeometricFunctions + +.. autofunction:: get_sphCoord_axes \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_forces.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_forces.rst new file mode 100644 index 0000000..e0675ba --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_forces.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.GeometricFunctions.get\_weighted\_forces +================================================================= + +.. currentmodule:: CodeEntropy.calculations.GeometricFunctions + +.. autofunction:: get_weighted_forces \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_torques.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_torques.rst new file mode 100644 index 0000000..f0712de --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_torques.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.GeometricFunctions.get\_weighted\_torques +================================================================== + +.. currentmodule:: CodeEntropy.calculations.GeometricFunctions + +.. autofunction:: get_weighted_torques \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.rst new file mode 100644 index 0000000..fd0c8d8 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.rst @@ -0,0 +1,19 @@ +CodeEntropy.calculations.GeometricFunctions +=========================================== + +.. automodule:: CodeEntropy.calculations.GeometricFunctions + + + .. rubric:: Functions + + .. autosummary:: + + create_submatrix + filter_zero_rows_columns + get_avg_pos + get_axes + get_beads + get_sphCoord_axes + get_weighted_forces + get_weighted_torques + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_dihedrals.rst b/docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_dihedrals.rst new file mode 100644 index 0000000..139db04 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_dihedrals.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.LevelFunctions.get\_dihedrals +====================================================== + +.. currentmodule:: CodeEntropy.calculations.LevelFunctions + +.. autofunction:: get_dihedrals \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_matrices.rst b/docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_matrices.rst new file mode 100644 index 0000000..7291dec --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_matrices.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.LevelFunctions.get\_matrices +===================================================== + +.. currentmodule:: CodeEntropy.calculations.LevelFunctions + +.. autofunction:: get_matrices \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.LevelFunctions.rst b/docs/autosummary/CodeEntropy.calculations.LevelFunctions.rst new file mode 100644 index 0000000..2e5223e --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.LevelFunctions.rst @@ -0,0 +1,14 @@ +CodeEntropy.calculations.LevelFunctions +======================================= + +.. automodule:: CodeEntropy.calculations.LevelFunctions + + + .. rubric:: Functions + + .. autosummary:: + + get_dihedrals + get_matrices + select_levels + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.LevelFunctions.select_levels.rst b/docs/autosummary/CodeEntropy.calculations.LevelFunctions.select_levels.rst new file mode 100644 index 0000000..98f9a27 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.LevelFunctions.select_levels.rst @@ -0,0 +1,6 @@ +CodeEntropy.calculations.LevelFunctions.select\_levels +====================================================== + +.. currentmodule:: CodeEntropy.calculations.LevelFunctions + +.. autofunction:: select_levels \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.MDAUniverseHelper.rst b/docs/autosummary/CodeEntropy.calculations.MDAUniverseHelper.rst new file mode 100644 index 0000000..93a2898 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.MDAUniverseHelper.rst @@ -0,0 +1,15 @@ +CodeEntropy.calculations.MDAUniverseHelper +========================================== + +.. automodule:: CodeEntropy.calculations.MDAUniverseHelper + + + .. rubric:: Functions + + .. autosummary:: + + new_U_select_atom + new_U_select_frame + read_universe + write_universe + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.NeighbourFunctions.rst b/docs/autosummary/CodeEntropy.calculations.NeighbourFunctions.rst new file mode 100644 index 0000000..1ee52dc --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.NeighbourFunctions.rst @@ -0,0 +1,12 @@ +CodeEntropy.calculations.NeighbourFunctions +=========================================== + +.. automodule:: CodeEntropy.calculations.NeighbourFunctions + + + .. rubric:: Functions + + .. autosummary:: + + get_neighbours + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.UnitsAndConversions.rst b/docs/autosummary/CodeEntropy.calculations.UnitsAndConversions.rst new file mode 100644 index 0000000..5a128e9 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.UnitsAndConversions.rst @@ -0,0 +1,13 @@ +CodeEntropy.calculations.UnitsAndConversions +============================================ + +.. automodule:: CodeEntropy.calculations.UnitsAndConversions + + + .. rubric:: Functions + + .. autosummary:: + + change_lambda_units + get_KT2J + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.rst b/docs/autosummary/CodeEntropy.calculations.rst new file mode 100644 index 0000000..a028774 --- /dev/null +++ b/docs/autosummary/CodeEntropy.calculations.rst @@ -0,0 +1,19 @@ +CodeEntropy.calculations +======================== + +.. automodule:: CodeEntropy.calculations + + +.. rubric:: Modules + +.. autosummary:: + :toctree: + :recursive: + + ConformationFunctions + EntropyFunctions + GeometricFunctions + LevelFunctions + MDAUniverseHelper + NeighbourFunctions + UnitsAndConversions diff --git a/docs/autosummary/CodeEntropy.config.arg_config_manager.rst b/docs/autosummary/CodeEntropy.config.arg_config_manager.rst new file mode 100644 index 0000000..20f5c4d --- /dev/null +++ b/docs/autosummary/CodeEntropy.config.arg_config_manager.rst @@ -0,0 +1,12 @@ +CodeEntropy.config.arg\_config\_manager +======================================= + +.. automodule:: CodeEntropy.config.arg_config_manager + + + .. rubric:: Classes + + .. autosummary:: + + ConfigManager + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.config.data_logger.rst b/docs/autosummary/CodeEntropy.config.data_logger.rst new file mode 100644 index 0000000..97310d7 --- /dev/null +++ b/docs/autosummary/CodeEntropy.config.data_logger.rst @@ -0,0 +1,12 @@ +CodeEntropy.config.data\_logger +=============================== + +.. automodule:: CodeEntropy.config.data_logger + + + .. rubric:: Classes + + .. autosummary:: + + DataLogger + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.config.logging_config.rst b/docs/autosummary/CodeEntropy.config.logging_config.rst new file mode 100644 index 0000000..3ee117f --- /dev/null +++ b/docs/autosummary/CodeEntropy.config.logging_config.rst @@ -0,0 +1,12 @@ +CodeEntropy.config.logging\_config +================================== + +.. automodule:: CodeEntropy.config.logging_config + + + .. rubric:: Classes + + .. autosummary:: + + LoggingConfig + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.config.rst b/docs/autosummary/CodeEntropy.config.rst new file mode 100644 index 0000000..9489f46 --- /dev/null +++ b/docs/autosummary/CodeEntropy.config.rst @@ -0,0 +1,15 @@ +CodeEntropy.config +================== + +.. automodule:: CodeEntropy.config + + +.. rubric:: Modules + +.. autosummary:: + :toctree: + :recursive: + + arg_config_manager + data_logger + logging_config diff --git a/docs/autosummary/CodeEntropy.main_mcc.create_job_folder.rst b/docs/autosummary/CodeEntropy.main_mcc.create_job_folder.rst new file mode 100644 index 0000000..ff5d529 --- /dev/null +++ b/docs/autosummary/CodeEntropy.main_mcc.create_job_folder.rst @@ -0,0 +1,6 @@ +CodeEntropy.main\_mcc.create\_job\_folder +========================================= + +.. currentmodule:: CodeEntropy.main_mcc + +.. autofunction:: create_job_folder \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.main_mcc.main.rst b/docs/autosummary/CodeEntropy.main_mcc.main.rst new file mode 100644 index 0000000..1ae4542 --- /dev/null +++ b/docs/autosummary/CodeEntropy.main_mcc.main.rst @@ -0,0 +1,6 @@ +CodeEntropy.main\_mcc.main +========================== + +.. currentmodule:: CodeEntropy.main_mcc + +.. autofunction:: main \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index e8aa2cb..953edfa 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -77,7 +77,7 @@ # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = None +language = en # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. diff --git a/docs/faq.rst b/docs/faq.rst index d34899b..29a60c9 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -1,10 +1,7 @@ Frequently asked questions ============================== -What are FF and TT entropy? ---------------------------------- -FF and TT stand for Force-Force and Torque-Torque, respectively. But they really are the translational and rotational components of vibration entropy at a given level of hierarchy, also respectively. The former is computed by diagonalizing a force-force covariance matrix and latter using a torque-torque covariance matrix - each normalized separately using masses and inertias, respectively, to have the same dimensions. Why do I get ``nan`` or complex number result? -------------------------------------------------- -Try increasing the sampling time. This is especially true for residue level. For example in a lysozyme system, residue level we have largest FF and TT matrices because at this level we have the largest number of cells/beads (which is equal to the number of resides) compared to the molecule level (3 beads) and UA level (~10 beads per amino acid). So insufficient sampling might introduce noise and cause matrix elements to deviate to values that would not reflect the uncorrelated nature of force-force covariance of distantly positioned residues. \ No newline at end of file +Try increasing the sampling time. This is especially true for residue level. For example in a lysozyme system, residue level we have largest FF and TT matrices because at this level we have the largest number of cells/beads (which is equal to the number of resides) compared to the molecule level (3 beads) and UA level (~10 beads per amino acid). So insufficient sampling might introduce noise and cause matrix elements to deviate to values that would not reflect the uncorrelated nature of force-force covariance of distantly positioned residues. diff --git a/docs/getting_started.rst b/docs/getting_started.rst index 40320f3..bdc00a9 100644 --- a/docs/getting_started.rst +++ b/docs/getting_started.rst @@ -5,8 +5,6 @@ Requirements ---------------- * Python > 3.9 -* gcc -* g++ Installation ---------------- @@ -20,7 +18,6 @@ Input ---------- For supported format (AMBER NETCDF and GROMACS TRR) you will need to output the **coordinates** and **forces** to the **same file**. -For unsupported format see :ref:`load-custom` for ideas on how to load custom data into MDanalysis universe and convert to supported format. Units ------------ @@ -31,7 +28,7 @@ The program assumes the following default unit :class: tight-table :header-rows: 1 - * - Qunatity + * - Quantity - Unit * - Length - Å @@ -50,16 +47,19 @@ Quick start guide This doesn't work on Windows!!! -A quick and easy way to get started is to use the command-line tool which you can run in bash by simply typing ``CodeEntropyPoseidon`` +A quick and easy way to get started is to use the command-line tool which you can run in bash by simply typing ``CodeEntropy`` For help ^^^^^^^^^^^ .. code-block:: bash - CodeEntropyPoseidon -h + CodeEntropy -h Arguments ^^^^^^^^^^^^^ +Arguments should go in a config.yaml file. +The values in the yaml file can be overridden by command line arguments. +The top_traj_file argument is necessary to identify your simulation data, the others can use default values. .. list-table:: Arguments :widths: 20 30 10 10 @@ -70,113 +70,58 @@ Arguments - Description - Default - Type - * - ``-f``, ``--top_traj_file`` + * - ``--top_traj_file`` - Path to Structure/topology file(``AMBER PRMTOP``, ``GROMACS TPR`` or topology file with MDAnalysis readable dihedral information (not officially supported)) followed by Trajectory file(s) (``GROMAC TRR`` or ``AMBER NETCDF``) You will need to output the **coordinates** and **forces** to the **same file** . - Required - list of ``str`` - * - ``-l``, ``--selectString`` + * - ``--selection_string`` - Selection string for CodeEntropy such as protein or resid, refer to ``MDAnalysis.select_atoms`` for more information. - ``"all"``: select all atom in trajectory - ``str`` - * - ``-b``, ``--begin`` + * - ``--start`` - Start analysing the trajectory from this frame index. - ``0``: From begining - ``int`` - * - ``-e``, ``--end`` + * - ``--end`` - Stop analysing the trajectory at this frame index - ``-1``: end of trajectory - ``int`` - * - ``-d``, ``--step`` - - Steps between frame + * - ``--step`` + - Interval between two consecutive frame indices to be read - ``1`` - ``int`` - * - ``-k``, ``--tempra`` + * - ``--bin_width`` + - Bin width in degrees for making the dihedral angle histogram + - ``30`` + - ``int`` + * - ``--temperature`` - Temperature for entropy calculation (K) - ``298.0`` - ``float`` - * - ``-t``, ``--thread`` + * - ``--verbose`` + - Enable verbose output + - ``False`` + - ``bool`` + * - ``--thread`` - How many multiprocess to use. - ``1``: for single core execution - ``int`` - * - ``-o``, ``--out`` + * - ``--outfile`` - Name of the file where the text format output will be written. - ``outfile.out`` - ``str`` - * - ``-v``, ``--csvout`` - - Name of the file where the total entropy output will be written. - - ``outfile.csv`` - - ``str`` - * - ``-r``, ``--resout`` - - Name of the file where the residue entropy output will be written. - - ``res_outfile.csv`` - - ``str`` - * - ``-m``, ``--mout`` + * - ``--mout`` - Name of the file where certain matrices will be written. - ``None`` - ``str`` - * - ``-n``, ``--nmd`` - - Name of the file where VMD compatible NMD format files with mode information will be printed. - - ``None`` - - ``str`` - * - ``-a``, ``--rotationalaxis`` - - The 3 atom name in each residue for rotational and translational axis. - - ``['C', 'CA', 'N']`` : for protein - - list of ``str`` - * - ``-c``, ``--cutShell`` - - Include cutoff shell analysis, add cutoff distance in angstrom. - - ``None`` \: will ust the RAD Algorithm. See Higham, Jonathan, and Richard H Henchman. “Locally adaptive method to define coordination shell.” The Journal of chemical physics vol. 145,8 (2016): 084108. doi:10.1063/1.4961439 - - list of ``str`` - * - ``-p``, ``--pureAtomNum`` - - Reference molecule resid for system of pure liquid. - - ``1`` - - ``int`` - * - ``-x``, ``--excludedResnames`` - - Exclude a list of molecule names from nearest non-like analysis. - - ``None`` - - list of ``str`` - * - ``-w``, ``--water`` - - Resname for water molecules. - - ``'Wat'`` - - list of ``str`` - * - ``-s``, ``--solvent`` - - Include resname of solvent molecules (case-sensitive). - - ``None`` - - list of ``str`` - * - ``--wm`` - - Do entropy calculation at whole molecule level (The whole molecule is treated as one single bead.). - - Flag, activate when included - - Flag - * - ``--res`` - - Do entropy calculation at residue level (A residue as a whole represents a bead.). - - Flag, activate when included - - Flag - * - ``--uatom`` - - Do entropy calculation at united atom level (A heavy atom and its covalently bonded H-atoms for an united atom and represent a bead.). - - Flag, activate when included - - Flag - * - ``--topog`` - - Compute the topographical entropy using : - * 1 : pLogP method (will separate between backbone and side chain) - * 2 : Corr. pLogP method (will separate between backbone and side chain) - * 3 : Corr. pLogP after adaptive enumeration of states - - ``0`` : no topographical analysis - - ``int`` - * - ``--solwm`` - - Do solution entropy calculation at residue level (The whole molecule is treated as one single bead.). - - Flag, activate when included - - Flag - * - ``--solres`` - - Do solution entropy calculation at residue level (A residue as a whole represents a bead. - - Flag, activate when included - - Flag - * - ``--soluatom`` - - Do solution entropy calculation at united atom level (A heavy atom and its covalently bonded H-atoms for an united atom and represent a bead.). - - Flag, activate when included - - Flag - * - ``--solContact`` - - Do solute contact calculation. - - Flag, activate when included - - Flag + * - ``--force_partitioning`` + - Factor for partitioning forces when there are weak correlations + - ``0.5`` + - ``float`` + * - ``--waterEntropy`` + - Use Jas Kalayan's waterEntropy code to calculate the water conformational entropy + - ``False`` + - ``bool`` Example @@ -185,7 +130,7 @@ Example .. code-block:: bash # example 1 DNA - CodeEntropyPoseidon -f "Example/data/md_A4_dna.tpr" "Example/data/md_A4_dna_xf.trr" -a "C5'" "C4'" "C3'" -l "all" -t 8 --wm --res --uatom --topog 3 + CodeEntropy --top_traj_file "Example/data/md_A4_dna.tpr" "Example/data/md_A4_dna_xf.trr" # example 2 lysozyme in water - CodeEntropyPoseidon -f "Example/data/1AKI_prod_60.tpr" "Example/data/1AKI_prod_60.trr" -l "protein" -b 1 -e 30 -d 2 --wm --res --uatom --topog 1 --solwm --solres --soluatom --solContact + CodeEntropy --top_traj_file "Example/data/1AKI_prod_60.tpr" "Example/data/1AKI_prod_60.trr" diff --git a/docs/index.rst b/docs/index.rst index 93fd45e..083a7a9 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -8,15 +8,13 @@ Welcome to CodeEntropy's documentation! ========================================================= -This code is based on the CodeEntropy tool with POSEIDON code integrated to form a complete and generally applicable set of tools for computing entropy of macromolecular systems from the forces sampled in a MD simulation. +This code is a complete and generally applicable set of tools for computing entropy of macromolecular systems from the forces sampled in a MD simulation. .. toctree:: :maxdepth: 2 :caption: Contents: getting_started - Run_as_script - Script_example api faq community_guide diff --git a/docs/notebook/Capped_protein_Example.ipynb b/docs/notebook/Capped_protein_Example.ipynb deleted file mode 100644 index 3931557..0000000 --- a/docs/notebook/Capped_protein_Example.ipynb +++ /dev/null @@ -1,564 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "b062a235-be79-4897-9f63-73f3d5fa411d", - "metadata": {}, - "source": [ - "# Calculate Solvent Entropy for a capped amino acid (Solvent)" - ] - }, - { - "cell_type": "markdown", - "id": "7ab57875-f604-491b-a08d-85cb5386f9e3", - "metadata": {}, - "source": [ - "## Load Data" - ] - }, - { - "cell_type": "markdown", - "id": "3fb95f32-d4ff-46a1-b6a8-dea0011f07a4", - "metadata": {}, - "source": [ - "1. Load data into MDAnalysis Universe" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "fadb5a2e-d401-418f-bf43-5bb1771d052e", - "metadata": {}, - "outputs": [], - "source": [ - "import MDAnalysis as mda\n", - "# set the working dir to the root of repo inorder to use these path\n", - "tprfile = \"data/molecules.prmtop\"\n", - "trrfile = \"data/data.trr\"\n", - "u = mda.Universe(tprfile, trrfile)" - ] - }, - { - "cell_type": "markdown", - "id": "289d84e8-c4f5-48d2-8c91-6c9d7243a351", - "metadata": {}, - "source": [ - "2. Load data into POSEIDON object" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "b6a0fd0c-2bb1-4c90-a90b-b094a976ee3b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-06-30 14:02:39.497272\n", - "frame = 0\n", - "< Timestep 0 with unit cell dimensions [30.67833 30.40052 29.490604 90. 90. 90. ] >\n", - "0:00:01.521913\n", - "frame = 1\n", - "< Timestep 1 with unit cell dimensions [30.682182 30.404337 29.494312 90. 90. 90. ] >\n", - "0:00:02.572888\n", - "frame = 2\n", - "< Timestep 2 with unit cell dimensions [30.713255 30.435127 29.524178 90. 90. 90. ] >\n", - "0:00:03.637349\n", - "frame = 3\n", - "< Timestep 3 with unit cell dimensions [30.598316 30.321232 29.41369 90. 90. 90. ] >\n", - "0:00:04.678439\n", - "frame = 4\n", - "< Timestep 4 with unit cell dimensions [30.618622 30.341354 29.43321 90. 90. 90. ] >\n", - "0:00:05.883773\n", - "frame = 5\n", - "< Timestep 5 with unit cell dimensions [30.619095 30.341824 29.433666 90. 90. 90. ] >\n", - "0:00:07.016012\n", - "frame = 6\n", - "< Timestep 6 with unit cell dimensions [30.738136 30.459784 29.5481 90. 90. 90. ] >\n", - "0:00:08.035066\n", - "frame = 7\n", - "< Timestep 7 with unit cell dimensions [30.694881 30.416918 29.506514 90. 90. 90. ] >\n", - "0:00:09.121570\n", - "frame = 8\n", - "< Timestep 8 with unit cell dimensions [30.644718 30.36721 29.458292 90. 90. 90. ] >\n", - "0:00:10.153657\n", - "frame = 9\n", - "< Timestep 9 with unit cell dimensions [30.726116 30.447872 29.536541 90. 90. 90. ] >\n", - "0:00:11.302036\n", - "frame = 10\n", - "< Timestep 10 with unit cell dimensions [30.580582 30.303658 29.39664 90. 90. 90. ] >\n", - "0:00:12.495815\n", - "frame = 11\n", - "< Timestep 11 with unit cell dimensions [30.772951 30.494282 29.581562 90. 90. 90. ] >\n", - "0:00:13.531333\n", - "frame = 12\n", - "< Timestep 12 with unit cell dimensions [30.772266 30.493605 29.580906 90. 90. 90. ] >\n", - "0:00:14.756963\n", - "frame = 13\n", - "< Timestep 13 with unit cell dimensions [30.58512 30.308151 29.401005 90. 90. 90. ] >\n", - "0:00:15.946092\n", - "frame = 14\n", - "< Timestep 14 with unit cell dimensions [30.599762 30.322662 29.415077 90. 90. 90. ] >\n", - "0:00:17.018432\n", - "frame = 15\n", - "< Timestep 15 with unit cell dimensions [30.746477 30.468048 29.556114 90. 90. 90. ] >\n", - "0:00:18.067639\n", - "frame = 16\n", - "< Timestep 16 with unit cell dimensions [30.764982 30.486385 29.573902 90. 90. 90. ] >\n", - "0:00:19.290882\n", - "frame = 17\n", - "< Timestep 17 with unit cell dimensions [30.672724 30.394962 29.485216 90. 90. 90. ] >\n", - "0:00:20.361321\n", - "frame = 18\n", - "< Timestep 18 with unit cell dimensions [30.674246 30.396471 29.48668 90. 90. 90. ] >\n", - "0:00:21.491847\n", - "frame = 19\n", - "< Timestep 19 with unit cell dimensions [30.699165 30.421165 29.510633 90. 90. 90. ] >\n", - "0:00:22.582298\n", - "0:00:22.582866\n" - ] - } - ], - "source": [ - "from CodeEntropy.ClassCollection.PoseidonClass import Poseidon\n", - "poseidon_object = Poseidon(container=u, start=0, end=20)" - ] - }, - { - "cell_type": "markdown", - "id": "5fd37e4e-1fc5-4a30-84b3-863f19cbb0b6", - "metadata": {}, - "source": [ - "## Calculate Entropy" - ] - }, - { - "cell_type": "markdown", - "id": "41cc97b9-e89d-431c-9991-00a39f69f2a2", - "metadata": {}, - "source": [ - "### Whole Molecule level" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "f5f77c6b-2b32-4321-9fab-f597f6371ac4", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-06-30 14:03:04.107787\n", - "\n", - "solvent: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "water: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "1. Populate Dictionaries\n", - "\n", - "memory use: 0.231 GB\n", - "0:00:00.001139\n", - "memory use: 0.231 GB\n", - "0:00:01.374287\n", - "0:00:01.374803\n", - "memory use: 0.231 GB\n", - "\n", - "Total number of frames: 20.0\n", - "Number of atoms in each frame: 916\n", - "Number of variables in each list: 19\n", - "\n", - "2. Process Dictionaries\n", - "['moleculeLevel']\n", - "---level: moleculeLevel\n", - "\n", - "\n", - "0:00:01.557718\n", - "{'moleculeLevel': {'solventData': nearest assigned shell_num variable value count\n", - "0 ACE WAT 1.0 Sor_test2 4.489916 155\n", - "1 ACE WAT 1.0 Strans 47.114194 155\n", - "2 ACE WAT 1.0 Srot 21.518819 155\n", - "3 ACE WAT 1.0 count 7.75 155\n", - "4 ARG WAT 1.0 Sor_test2 4.389286 358\n", - "5 ARG WAT 1.0 Strans 46.659296 358\n", - "6 ARG WAT 1.0 Srot 21.813924 358\n", - "7 ARG WAT 1.0 count 17.9 358\n", - "8 NME WAT 1.0 Sor_test2 2.782703 117\n", - "9 NME WAT 1.0 Strans 46.479766 117\n", - "10 NME WAT 1.0 Srot 20.958346 117\n", - "11 NME WAT 1.0 count 5.85 117, 'soluteData': resName variable value count\n", - "0 ACE WM_Strans 31.20938 20\n", - "1 ACE WM_Srot 18.233384 20\n", - "2 ACE WM_UA_Strans 1.450273 20\n", - "3 ACE WM_UA_Srot 17.25675 20\n", - "4 ARG WM_Strans 37.553747 20\n", - "5 ARG WM_Srot 10.55119 20\n", - "6 ARG WM_UA_Strans 203.095275 20\n", - "7 ARG WM_UA_Srot NaN 20\n", - "8 ARG conf_AE 18.358527 20\n", - "9 NME WM_Strans 28.852401 20\n", - "10 NME WM_Srot 0.387749 20\n", - "11 NME WM_UA_Strans 0.0 20\n", - "12 NME WM_UA_Srot 27.433272 20}}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/donald/miniconda3/envs/CEtrial/lib/python3.10/site-packages/CodeEntropy/poseidon/analysis/EECalculation.py:859: RuntimeWarning: invalid value encountered in double_scalars\n", - " w = w ** 0.5\n" - ] - } - ], - "source": [ - "result_wm = poseidon_object.run_analysis(level_list = ['moleculeLevel'], verbose=False, forceUnits=\"Kcal\") # this is because the forces value supplied in this trajectory is in Kcal\n", - "print(result_wm)" - ] - }, - { - "cell_type": "markdown", - "id": "6899945c-edb3-408c-a0ae-4035895b50e9", - "metadata": {}, - "source": [ - "### Residue Level" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "2a32bbeb-0033-4958-84d6-cf05266b486d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-06-30 14:03:08.891780\n", - "\n", - "solvent: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "water: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "1. Populate Dictionaries\n", - "\n", - "memory use: 0.232 GB\n", - "0:00:00.001426\n", - "memory use: 0.232 GB\n", - "0:00:01.297753\n", - "0:00:01.298211\n", - "memory use: 0.232 GB\n", - "\n", - "Total number of frames: 20.0\n", - "Number of atoms in each frame: 916\n", - "Number of variables in each list: 19\n", - "\n", - "2. Process Dictionaries\n", - "['residLevel_resname']\n", - "---level: residLevel_resname\n", - "\n", - "\n", - "0:00:01.458315\n", - "{'residLevel_resname': {'solventData': nearest assigned shell_num variable value count\n", - "0 ACE_1 WAT 1.0 Sor_test2 4.489916 155\n", - "1 ACE_1 WAT 1.0 Strans 47.114194 155\n", - "2 ACE_1 WAT 1.0 Srot 21.518819 155\n", - "3 ACE_1 WAT 1.0 count 7.75 155\n", - "4 ARG_2 WAT 1.0 Sor_test2 4.389286 358\n", - "5 ARG_2 WAT 1.0 Strans 46.659296 358\n", - "6 ARG_2 WAT 1.0 Srot 21.813924 358\n", - "7 ARG_2 WAT 1.0 count 17.9 358\n", - "8 NME_3 WAT 1.0 Sor_test2 2.782703 117\n", - "9 NME_3 WAT 1.0 Strans 46.479766 117\n", - "10 NME_3 WAT 1.0 Srot 20.958346 117\n", - "11 NME_3 WAT 1.0 count 5.85 117, 'soluteData': resName variable value count\n", - "0 ACE_1 WM_Strans 31.20938 20\n", - "1 ACE_1 WM_Srot 18.233384 20\n", - "2 ACE_1 WM_UA_Strans 1.450273 20\n", - "3 ACE_1 WM_UA_Srot 17.25675 20\n", - "4 ARG_2 WM_Strans 37.553747 20\n", - "5 ARG_2 WM_Srot 10.55119 20\n", - "6 ARG_2 WM_UA_Strans 203.095275 20\n", - "7 ARG_2 WM_UA_Srot NaN 20\n", - "8 ARG_2 conf_AE 18.358527 20\n", - "9 NME_3 WM_Strans 28.852401 20\n", - "10 NME_3 WM_Srot 0.387749 20\n", - "11 NME_3 WM_UA_Strans 0.0 20\n", - "12 NME_3 WM_UA_Srot 27.433272 20, 'contactMatrix': centre_resid neighbour_resid count centre_resname neighbour_resname\n", - "0 1 2 3.0 ACE_1 ARG\n", - "1 1 3 0.1 ACE_1 NME\n", - "2 2 1 3.0 ARG_2 ACE\n", - "3 2 3 3.0 ARG_2 NME\n", - "4 3 1 0.1 NME_3 ACE\n", - "5 3 2 3.0 NME_3 ARG}}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/donald/miniconda3/envs/CEtrial/lib/python3.10/site-packages/CodeEntropy/poseidon/analysis/EECalculation.py:859: RuntimeWarning: invalid value encountered in double_scalars\n", - " w = w ** 0.5\n" - ] - } - ], - "source": [ - "result_res = poseidon_object.run_analysis(level_list = ['residLevel_resname'], verbose=False, forceUnits=\"Kcal\") # this is because the forces value supplied in this trajectory is in Kcal\n", - "print(result_res)" - ] - }, - { - "cell_type": "markdown", - "id": "81e7011e-3dc9-4115-932f-0bbad538ae0a", - "metadata": {}, - "source": [ - "### United Atom Level" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "33ebd4aa-d117-4812-b7e8-1faed30c88e0", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-06-30 14:03:13.104061\n", - "\n", - "solvent: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "water: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "1. Populate Dictionaries\n", - "\n", - "memory use: 0.232 GB\n", - "0:00:00.002788\n", - "memory use: 0.233 GB\n", - "0:00:01.388482\n", - "0:00:01.388816\n", - "memory use: 0.233 GB\n", - "\n", - "Total number of frames: 20.0\n", - "Number of atoms in each frame: 916\n", - "Number of variables in each list: 19\n", - "\n", - "2. Process Dictionaries\n", - "['atomLevel']\n", - "---level: atomLevel\n", - "\n", - "\n", - "0:00:01.590813\n", - "{'atomLevel': {'solventData': nearest assigned shell_num variable value count\n", - "0 ACE_C WAT_O 1.0 Sor_test2 3.859492 90\n", - "1 ACE_C WAT_O 1.0 Strans 46.89642 90\n", - "2 ACE_C WAT_O 1.0 Srot 21.477797 90\n", - "3 ACE_C WAT_O 1.0 count 4.5 90\n", - "4 ACE_O WAT_O 1.0 Sor_test2 1.383652 65\n", - "5 ACE_O WAT_O 1.0 Strans 47.442017 65\n", - "6 ACE_O WAT_O 1.0 Srot 21.607751 65\n", - "7 ACE_O WAT_O 1.0 count 3.25 65\n", - "8 ARG_C WAT_O 1.0 Sor_test2 2.209787 94\n", - "9 ARG_C WAT_O 1.0 Strans 44.950488 94\n", - "10 ARG_C WAT_O 1.0 Srot 22.805753 94\n", - "11 ARG_C WAT_O 1.0 count 4.7 94\n", - "12 ARG_N WAT_O 1.0 Sor_test2 4.32251 213\n", - "13 ARG_N WAT_O 1.0 Strans 47.054251 213\n", - "14 ARG_N WAT_O 1.0 Srot 21.210664 213\n", - "15 ARG_N WAT_O 1.0 count 10.65 213\n", - "16 ARG_O WAT_O 1.0 Sor_test2 0.658554 51\n", - "17 ARG_O WAT_O 1.0 Strans 49.519626 51\n", - "18 ARG_O WAT_O 1.0 Srot 23.221778 51\n", - "19 ARG_O WAT_O 1.0 count 2.55 51\n", - "20 NME_C WAT_O 1.0 Sor_test2 2.876769 92\n", - "21 NME_C WAT_O 1.0 Strans 46.592128 92\n", - "22 NME_C WAT_O 1.0 Srot 20.791071 92\n", - "23 NME_C WAT_O 1.0 count 4.6 92\n", - "24 NME_N WAT_O 1.0 Sor_test2 0.3607 25\n", - "25 NME_N WAT_O 1.0 Strans 46.337027 25\n", - "26 NME_N WAT_O 1.0 Srot 21.698027 25\n", - "27 NME_N WAT_O 1.0 count 1.25 25, 'soluteData': resName variable value count\n", - "0 ACE_C WM_Strans 31.20938 20\n", - "1 ACE_C WM_Srot 18.233384 20\n", - "2 ACE_C WM_UA_Strans 1.450273 20\n", - "3 ACE_C WM_UA_Srot 17.25675 20\n", - "4 ARG_N WM_Strans 37.553747 20\n", - "5 ARG_N WM_Srot 10.55119 20\n", - "6 ARG_N WM_UA_Strans 203.095275 20\n", - "7 ARG_N WM_UA_Srot NaN 20\n", - "8 ARG_N conf_AE 18.358527 20\n", - "9 NME_N WM_Strans 28.852401 20\n", - "10 NME_N WM_Srot 0.387749 20\n", - "11 NME_N WM_UA_Strans 0.0 20\n", - "12 NME_N WM_UA_Srot 27.433272 20, 'contactMatrix': centre_resid neighbour_resid count centre_resname neighbour_resname \\\n", - "0 1 2 1.0 ACE ARG \n", - "1 2 3 1.0 ARG NME \n", - "2 2 1 1.0 ARG ACE \n", - "3 2 3 1.0 ARG NME \n", - "4 1 2 1.0 ACE ARG \n", - "5 3 2 1.0 NME ARG \n", - "6 2 1 1.0 ARG ACE \n", - "7 2 1 1.0 ARG ACE \n", - "8 3 2 1.0 NME ARG \n", - "9 3 1 0.1 NME ACE \n", - "10 3 2 1.0 NME ARG \n", - "11 1 2 1.0 ACE ARG \n", - "12 1 3 0.1 ACE NME \n", - "13 2 3 1.0 ARG NME \n", - "\n", - " centre_atom neighbour_atom \n", - "0 C CA \n", - "1 C CH3 \n", - "2 CA C \n", - "3 CA N \n", - "4 CH3 N \n", - "5 CH3 C \n", - "6 N CH3 \n", - "7 N O \n", - "8 N CA \n", - "9 N O \n", - "10 N O \n", - "11 O N \n", - "12 O N \n", - "13 O N }}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/donald/miniconda3/envs/CEtrial/lib/python3.10/site-packages/CodeEntropy/poseidon/analysis/EECalculation.py:859: RuntimeWarning: invalid value encountered in double_scalars\n", - " w = w ** 0.5\n" - ] - } - ], - "source": [ - "result_ua = poseidon_object.run_analysis(level_list = ['atomLevel'], verbose=False, forceUnits=\"Kcal\") # this is because the forces value supplied in this trajectory is in Kcal\n", - "print(result_ua)" - ] - }, - { - "cell_type": "markdown", - "id": "0137f3df-31d8-49d6-abab-6bce5f1d2ca3", - "metadata": {}, - "source": [ - "### Solute Contact" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "27ca66f2-04c2-4471-9fa7-23b6d392c26b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-06-30 14:03:19.556689\n", - "\n", - "solvent: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "water: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "1. Populate Dictionaries\n", - "\n", - "memory use: 0.233 GB\n", - "0:00:00.001247\n", - "memory use: 0.233 GB\n", - "0:00:00.091347\n", - "0:00:00.091990\n", - "memory use: 0.233 GB\n", - "\n", - "Total number of frames: 20.0\n", - "Number of atoms in each frame: 916\n", - "Number of variables in each list: 19\n", - "\n", - "2. Process Dictionaries\n", - "['soluteContacts']\n", - "---level: soluteContacts\n", - "\n", - "\n", - "0:00:00.190073\n", - "{'soluteContacts': {'solventData': nearest assigned shell_num variable value count\n", - "0 ACE_1_ACE_1 WAT 1.0 Sor_test2 0.747622 19\n", - "1 ACE_1_ACE_1 WAT 1.0 Strans 54.849501 19\n", - "2 ACE_1_ACE_1 WAT 1.0 Srot 21.83436 19\n", - "3 ACE_1_ACE_1 WAT 1.0 count 0.95 19\n", - "4 ACE_1_ARG_2 WAT 1.0 Sor_test2 0.129079 26\n", - "5 ACE_1_ARG_2 WAT 1.0 Strans 53.464565 26\n", - "6 ACE_1_ARG_2 WAT 1.0 Srot 21.481491 26\n", - "7 ACE_1_ARG_2 WAT 1.0 count 1.3 26\n", - "8 ACE_1_NME_3 WAT 1.0 Sor_test2 0.029043 16\n", - "9 ACE_1_NME_3 WAT 1.0 Strans 49.229698 16\n", - "10 ACE_1_NME_3 WAT 1.0 Srot 26.038399 16\n", - "11 ACE_1_NME_3 WAT 1.0 count 0.8 16\n", - "12 ARG_2_ACE_1 WAT 1.0 Sor_test2 0.129079 26\n", - "13 ARG_2_ACE_1 WAT 1.0 Strans 53.464565 26\n", - "14 ARG_2_ACE_1 WAT 1.0 Srot 21.481491 26\n", - "15 ARG_2_ACE_1 WAT 1.0 count 1.3 26\n", - "16 ARG_2_ARG_2 WAT 1.0 Sor_test2 0.424278 104\n", - "17 ARG_2_ARG_2 WAT 1.0 Strans 47.596492 104\n", - "18 ARG_2_ARG_2 WAT 1.0 Srot 23.318138 104\n", - "19 ARG_2_ARG_2 WAT 1.0 count 5.2 104\n", - "20 ARG_2_NME_3 WAT 1.0 Sor_test2 0.733499 35\n", - "21 ARG_2_NME_3 WAT 1.0 Strans 49.012885 35\n", - "22 ARG_2_NME_3 WAT 1.0 Srot 20.595806 35\n", - "23 ARG_2_NME_3 WAT 1.0 count 1.75 35\n", - "24 NME_3_ACE_1 WAT 1.0 Sor_test2 0.029043 16\n", - "25 NME_3_ACE_1 WAT 1.0 Strans 49.229698 16\n", - "26 NME_3_ACE_1 WAT 1.0 Srot 26.038399 16\n", - "27 NME_3_ACE_1 WAT 1.0 count 0.8 16\n", - "28 NME_3_ARG_2 WAT 1.0 Sor_test2 0.733499 35\n", - "29 NME_3_ARG_2 WAT 1.0 Strans 49.012885 35\n", - "30 NME_3_ARG_2 WAT 1.0 Srot 20.595806 35\n", - "31 NME_3_ARG_2 WAT 1.0 count 1.75 35\n", - "32 NME_3_NME_3 WAT 1.0 Sor_test2 0.015884 13\n", - "33 NME_3_NME_3 WAT 1.0 Strans 48.028634 13\n", - "34 NME_3_NME_3 WAT 1.0 Srot 22.175048 13\n", - "35 NME_3_NME_3 WAT 1.0 count 0.65 13, 'soluteData': Empty DataFrame\n", - "Columns: [resName, variable, value, count]\n", - "Index: []}}\n" - ] - } - ], - "source": [ - "result_solcon = poseidon_object.run_analysis(level_list = ['soluteContacts'], verbose=False, forceUnits=\"Kcal\") # this is because the forces value supplied in this trajectory is in Kcal\n", - "print(result_solcon)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8bbbbf65-8e67-4a06-9e92-2d515e31567d", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.4" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/notebook/DNA_example.ipynb b/docs/notebook/DNA_example.ipynb deleted file mode 100644 index a5796f1..0000000 --- a/docs/notebook/DNA_example.ipynb +++ /dev/null @@ -1,749 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "68093ba0-442f-4a4a-b260-4fc51403ad13", - "metadata": { - "tags": [] - }, - "source": [ - "# Calculating entropy of DNA strand (Solute)" - ] - }, - { - "cell_type": "markdown", - "id": "eee6cbca-b665-4e09-84ee-b92ac335c832", - "metadata": {}, - "source": [ - "## Loading Data\n", - "1. Load your data into a MDAnalysis Universe. " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "9b35a790-7289-4a08-b645-e4854ba311fb", - "metadata": {}, - "outputs": [], - "source": [ - "import MDAnalysis as mda\n", - "# set the working dir to the root of repo inorder to use these path\n", - "tprfile = \"data/md_A4_dna.tpr\"\n", - "trrfile = \"data/md_A4_dna_xf.trr\"\n", - "u = mda.Universe(tprfile, trrfile)" - ] - }, - { - "cell_type": "markdown", - "id": "9d47f142-c8ef-4041-8ad4-71e27c8b752d", - "metadata": {}, - "source": [ - "2. Trim the data to reduce analysis time" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "40e0ec8e-f99d-4402-a2ac-7517f2fbe981", - "metadata": {}, - "outputs": [], - "source": [ - "from CodeEntropy.IO import MDAUniverseHelper as MDAHelper\n", - "# since this trajectory only contains the DNA strand\n", - "selection_string_pre_process = 'all'\n", - "start = 3\n", - "end = 40\n", - "step = 1\n", - "\n", - "reduced_frame = MDAHelper.new_U_select_frame(u, start, end, step)\n", - "\n", - "reduced_atom = MDAHelper.new_U_select_atom(reduced_frame, selection_string_pre_process)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "d96a9e6f-488b-4c40-8fa7-961161c17aab", - "metadata": {}, - "source": [ - "3. parse the data into a CodeEntropy data object" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "623181d4-78ee-40fa-bf74-bd25ad0ba241", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of atoms : 254\n", - "Number of frames : 37\n" - ] - } - ], - "source": [ - "from CodeEntropy.ClassCollection import DataContainer as DC\n", - "dataContainer = DC.DataContainer(reduced_atom)" - ] - }, - { - "cell_type": "markdown", - "id": "3ea1095d-674d-4760-9de5-ff1978b51710", - "metadata": {}, - "source": [ - "## Performing calculation\n", - "The total entropy for a system is taken as the sum of seven terms:\n", - "$S_{total} = S^{transvib}_{WM} + S^{rovib}_{WM} + S^{transvib}_{R} + S^{rovib}_{R} + S^{transvib}_{UA} + S^{rovib}_{UA} + S^{topo}_{UA}$" - ] - }, - { - "cell_type": "markdown", - "id": "0b9e3646-c608-4f4d-8d5f-077aceeccb22", - "metadata": {}, - "source": [ - "### Set Parameters" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "c7a0ca03-4866-4972-a4eb-cab26addc5bb", - "metadata": {}, - "outputs": [], - "source": [ - "from CodeEntropy.FunctionCollection import EntropyFunctions as EF\n", - "#Only the part of interest remained\n", - "selection_string = \"all\"\n", - "axis_list = [\"C5'\", \"C4'\", \"C3'\"]\n", - "outfile = None\n", - "moutFile = None\n", - "nmdFile = None\n", - "csv_out = None\n", - "tScale = 1.0\n", - "fScale = 1.0\n", - "temper = 300.0 #K\n", - "verbose = 3\n", - "thread = 4" - ] - }, - { - "cell_type": "markdown", - "id": "226c0598-833b-478d-9f02-b288e42903c9", - "metadata": {}, - "source": [ - "### Whole-molecule Level \n", - "$S^{transvib}_{WM} + S^{rovib}_{WM}$" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "6964e070-ac24-42da-9efc-42e8723524ce", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "------------------------------------------------------------\n", - " Hierarchy level. --> Whole molecule <-- \n", - "------------------------------------------------------------\n", - "Total number of beads at the whole molecule level = 1\n", - "Assigning Translation and Rotation Axes @ whole molecule level-> Done\n", - "Updating Local coordinates-> Done\n", - "Updating Local forces-> Done\n", - "Updating Local torques-> Done\n", - "Weighting forces and torques-> Done\n", - "Updating the submatrices ... \n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "Done\n", - "Generating Quadrants-> Done\n", - "Diagonalizing-> Done\n", - "Changing the units of eigen values to SI units-> Done\n", - "Sorting spectrum in ascending order of frequencies-> Done\n", - "Entropy values:\n", - "FF Entropy (Whole mol level) : 48.3941 J/mol/K\n", - "TT Entropy (Whole mol level) : 43.5001 J/mol/K\n", - "wm_entropyFF = 48.39410817515473\n", - "wm_entropyTT = 43.50008156137956\n" - ] - } - ], - "source": [ - "wm_entropyFF, wm_entropyTT = EF.compute_entropy_whole_molecule_level(\n", - " arg_hostDataContainer = dataContainer,\n", - " arg_outFile = outfile,\n", - " arg_selector = selection_string, \n", - " arg_moutFile = moutFile,\n", - " arg_nmdFile = nmdFile,\n", - " arg_fScale = fScale,\n", - " arg_tScale = tScale,\n", - " arg_temper = temper,\n", - " arg_verbose = verbose\n", - ")\n", - "print(f\"wm_entropyFF = {wm_entropyFF}\")\n", - "print(f\"wm_entropyTT = {wm_entropyTT}\")" - ] - }, - { - "cell_type": "markdown", - "id": "211e89f3-e216-4e25-bd36-cf314126c65c", - "metadata": {}, - "source": [ - "### Residue level\n", - "$S^{transvib}_{R} + S^{rovib}_{R}$" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "4fdb9d29-78e9-4831-bb4a-d53e31d94e39", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "------------------------------------------------------------\n", - " Hierarchy level. --> Residues <-- \n", - "------------------------------------------------------------\n", - "DA1\n", - "DA2\n", - "DA3\n", - "DA4\n", - "DT5\n", - "DT6\n", - "DT7\n", - "DT8\n", - "Total number of beads at the residue level = 8\n", - "Assigning Translation Axes @ residue level-> Done\n", - "Assigning Rotational Axes @ residue level->\n", - " 1 2 3 4 5 \n", - " 6 7 8 \n", - "Done\n", - "Updating Local forces-> Done\n", - "Updating Local coordinates-> Done\n", - "Updating Local torques-> Done\n", - "Weighting forces and torques-> Done\n", - "Updating the submatrices ... \n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "Done\n", - "Generating Quadrants-> Done\n", - "Diagonalizing-> Done\n", - "Changing the units of eigen values to SI units-> Done\n", - "Sorting spectrum in ascending order of frequencies-> Done\n", - "Entropy values:\n", - "FF Entropy (Residue level) : 201.0312 J/mol/K\n", - "TT Entropy (Residue level) : 311.2150 J/mol/K\n", - "res_entropyFF = 201.03116269045088\n", - "res_entropyTT = 311.2149733303239\n" - ] - } - ], - "source": [ - "res_entropyFF, res_entropyTT = EF.compute_entropy_residue_level(\n", - " arg_hostDataContainer = dataContainer,\n", - " arg_outFile = outfile,\n", - " arg_selector = selection_string, \n", - " arg_moutFile = moutFile,\n", - " arg_nmdFile = nmdFile,\n", - " arg_fScale = fScale,\n", - " arg_tScale = tScale,\n", - " arg_temper = temper,\n", - " arg_verbose = verbose,\n", - " arg_axis_list = axis_list,\n", - ")\n", - "\n", - "print(f\"res_entropyFF = {res_entropyFF}\")\n", - "print(f\"res_entropyTT = {res_entropyTT}\")" - ] - }, - { - "cell_type": "markdown", - "id": "bcc345e5-0bed-430e-bde8-6141bcbd18c4", - "metadata": {}, - "source": [ - "### United Atom Level\n", - "$S^{transvib}_{UA} + S^{rovib}_{UA}$" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "1b71a4c3-bfe5-47e9-8206-a362479d1883", - "metadata": { - "tags": [] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "------------------------------------------------------------\n", - " Hierarchy level. --> United Atom <-- \n", - "------------------------------------------------------------\n", - "Working on resid : DA1\n", - "Total number of UA beads in residue DA1 : 18\n", - "Assigning Translation Axes at the UA level-> Done\n", - "Assigning Rotational Axes at the UA level-> Done\n", - "Updating Local forces-> Done\n", - "Updating Local torques-> Done\n", - "Weighting forces and torques-> Done\n", - "Updating the submatrices ... \n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "Done\n", - "Generating Quadrants-> Done\n", - "A shape change has occured (54,54) -> (21, 21)\n", - "Diagonalizing-> Done\n", - "Changing the units of eigen values to SI units-> Done\n", - "Sorting spectrum in ascending order of frequencies-> Done\n", - "Entropy values:\n", - "FF Entropy (UA for DA1) : 44.5105 J/mol/K\n", - "TT Entropy (UA for DA1) : 22.6489 J/mol/K\n", - "\n", - "\n", - "\n", - "Working on resid : DA2\n", - "Total number of UA beads in residue DA2 : 21\n", - "Assigning Translation Axes at the UA level-> Done\n", - "Assigning Rotational Axes at the UA level-> Done\n", - "Updating Local forces-> Done\n", - "Updating Local torques-> Done\n", - "Weighting forces and torques-> Done\n", - "Updating the submatrices ... \n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "Done\n", - "Generating Quadrants-> Done\n", - "A shape change has occured (63,63) -> (19, 19)\n", - "Diagonalizing-> Done\n", - "Changing the units of eigen values to SI units-> Done\n", - "Sorting spectrum in ascending order of frequencies-> Done\n", - "Entropy values:\n", - "FF Entropy (UA for DA2) : 34.7319 J/mol/K\n", - "TT Entropy (UA for DA2) : 20.6152 J/mol/K\n", - "\n", - "\n", - "\n", - "Working on resid : DA3\n", - "Total number of UA beads in residue DA3 : 21\n", - "Assigning Translation Axes at the UA level-> Done\n", - "Assigning Rotational Axes at the UA level-> Done\n", - "Updating Local forces-> Done\n", - "Updating Local torques-> Done\n", - "Weighting forces and torques-> Done\n", - "Updating the submatrices ... \n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "Done\n", - "Generating Quadrants-> Done\n", - "A shape change has occured (63,63) -> (19, 19)\n", - "Diagonalizing-> Done\n", - "Changing the units of eigen values to SI units-> Done\n", - "Sorting spectrum in ascending order of frequencies-> Done\n", - "Entropy values:\n", - "FF Entropy (UA for DA3) : 36.1097 J/mol/K\n", - "TT Entropy (UA for DA3) : 23.6253 J/mol/K\n", - "\n", - "\n", - "\n", - "Working on resid : DA4\n", - "Total number of UA beads in residue DA4 : 21\n", - "Assigning Translation Axes at the UA level-> Done\n", - "Assigning Rotational Axes at the UA level-> Done\n", - "Updating Local forces-> Done\n", - "Updating Local torques-> Done\n", - "Weighting forces and torques-> Done\n", - "Updating the submatrices ... \n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "Done\n", - "Generating Quadrants-> Done\n", - "A shape change has occured (63,63) -> (21, 21)\n", - "Diagonalizing-> Done\n", - "Changing the units of eigen values to SI units-> Done\n", - "Sorting spectrum in ascending order of frequencies-> Done\n", - "Entropy values:\n", - "FF Entropy (UA for DA4) : 38.2059 J/mol/K\n", - "TT Entropy (UA for DA4) : 23.6248 J/mol/K\n", - "\n", - "\n", - "\n", - "Working on resid : DT5\n", - "Total number of UA beads in residue DT5 : 17\n", - "Assigning Translation Axes at the UA level-> Done\n", - "Assigning Rotational Axes at the UA level-> Done\n", - "Updating Local forces-> Done\n", - "Updating Local torques-> Done\n", - "Weighting forces and torques-> Done\n", - "Updating the submatrices ... \n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "Done\n", - "Generating Quadrants-> Done\n", - "A shape change has occured (51,51) -> (21, 21)\n", - "Diagonalizing-> Done\n", - "Changing the units of eigen values to SI units-> Done\n", - "Sorting spectrum in ascending order of frequencies-> Done\n", - "Entropy values:\n", - "FF Entropy (UA for DT5) : 57.6747 J/mol/K\n", - "TT Entropy (UA for DT5) : 36.7715 J/mol/K\n", - "\n", - "\n", - "\n", - "Working on resid : DT6\n", - "Total number of UA beads in residue DT6 : 20\n", - "Assigning Translation Axes at the UA level-> Done\n", - "Assigning Rotational Axes at the UA level-> Done\n", - "Updating Local forces-> Done\n", - "Updating Local torques-> Done\n", - "Weighting forces and torques-> Done\n", - "Updating the submatrices ... \n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "Done\n", - "Generating Quadrants-> Done\n", - "A shape change has occured (60,60) -> (19, 19)\n", - "Diagonalizing-> Done\n", - "Changing the units of eigen values to SI units-> Done\n", - "Sorting spectrum in ascending order of frequencies-> Done\n", - "Entropy values:\n", - "FF Entropy (UA for DT6) : 47.1265 J/mol/K\n", - "TT Entropy (UA for DT6) : 26.3445 J/mol/K\n", - "\n", - "\n", - "\n", - "Working on resid : DT7\n", - "Total number of UA beads in residue DT7 : 20\n", - "Assigning Translation Axes at the UA level-> Done\n", - "Assigning Rotational Axes at the UA level-> Done\n", - "Updating Local forces-> Done\n", - "Updating Local torques-> Done\n", - "Weighting forces and torques-> Done\n", - "Updating the submatrices ... \n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "Done\n", - "Generating Quadrants-> Done\n", - "A shape change has occured (60,60) -> (19, 19)\n", - "Diagonalizing-> Done\n", - "Changing the units of eigen values to SI units-> Done\n", - "Sorting spectrum in ascending order of frequencies-> Done\n", - "Entropy values:\n", - "FF Entropy (UA for DT7) : 44.4613 J/mol/K\n", - "TT Entropy (UA for DT7) : 27.3633 J/mol/K\n", - "\n", - "\n", - "\n", - "Working on resid : DT8\n", - "Total number of UA beads in residue DT8 : 20\n", - "Assigning Translation Axes at the UA level-> Done\n", - "Assigning Rotational Axes at the UA level-> Done\n", - "Updating Local forces-> Done\n", - "Updating Local torques-> Done\n", - "Weighting forces and torques-> Done\n", - "Updating the submatrices ... \n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "Done\n", - "Generating Quadrants-> Done\n", - "A shape change has occured (60,60) -> (21, 21)\n", - "Diagonalizing-> Done\n", - "Changing the units of eigen values to SI units-> Done\n", - "Sorting spectrum in ascending order of frequencies-> Done\n", - "Entropy values:\n", - "FF Entropy (UA for DT8) : 39.4173 J/mol/K\n", - "TT Entropy (UA for DT8) : 33.6917 J/mol/K\n", - "\n", - "\n", - "\n", - "------------------------------------------------------------\n", - "Total Entropy FF (UA level) : 342.238 J/mol/K\n", - "Total Entropy TT (UA level) : 214.685 J/mol/K\n", - "------------------------------------------------------------\n", - "UA_entropyFF = 342.2378738899839\n", - "UA_entropyTT = 214.68518956812613\n", - "Per residue entropy:\n", - " RESNAME RESID FF_ENTROPY(J/mol/K) TT_ENTROPY(J/mol/K)\n", - "0 DA 1 44.510450 22.648880\n", - "1 DA 2 34.731911 20.615160\n", - "2 DA 3 36.109735 23.625295\n", - "3 DA 4 38.205923 23.624781\n", - "4 DT 5 57.674748 36.771516\n", - "5 DT 6 47.126494 26.344506\n", - "6 DT 7 44.461274 27.363316\n", - "7 DT 8 39.417339 33.691735\n" - ] - } - ], - "source": [ - "UA_entropyFF, UA_entropyTT, res_df = EF.compute_entropy_UA_level(\n", - " arg_hostDataContainer = dataContainer,\n", - " arg_outFile = outfile,\n", - " arg_selector = selection_string, \n", - " arg_moutFile = moutFile,\n", - " arg_nmdFile = nmdFile,\n", - " arg_fScale = fScale,\n", - " arg_tScale = tScale,\n", - " arg_temper = temper,\n", - " arg_verbose = verbose,\n", - " arg_csv_out= csv_out,\n", - " arg_axis_list = axis_list,\n", - ")\n", - "print(f\"UA_entropyFF = {UA_entropyFF}\")\n", - "print(f\"UA_entropyTT = {UA_entropyTT}\")\n", - "print(\"Per residue entropy:\")\n", - "print(res_df)" - ] - }, - { - "cell_type": "markdown", - "id": "1c26addd-af9a-484f-9f52-c0773f6aca3e", - "metadata": {}, - "source": [ - "#### United Atom Level Multi process\n", - "Use Multiple thread to speed up operation" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "e7791d28-7ef4-4352-a939-fd8d2d7e5d43", - "metadata": { - "tags": [] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (54,54) -> (21, 21)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (63,63) -> (19, 19)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "Finished updating submatrix TT\n", - "A shape change has occured (63,63) -> (21, 21)\n", - "A shape change has occured (63,63) -> (19, 19)\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (51,51) -> (21, 21)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (60,60) -> (19, 19)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "Finished updating submatrix TT\n", - "A shape change has occured (60,60) -> (21, 21)\n", - "A shape change has occured (60,60) -> (19, 19)\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " RESNAME RESID FF_ENTROPY(J/mol/K) TT_ENTROPY(J/mol/K)\n", - "0 DA 1 44.510450 22.648880\n", - "1 DA 2 34.731911 20.615160\n", - "2 DA 3 36.109735 23.625295\n", - "3 DA 4 38.205923 23.624781\n", - "4 DT 5 57.674748 36.771516\n", - "5 DT 6 47.126494 26.344506\n", - "6 DT 7 44.461274 27.363316\n", - "7 DT 8 39.417339 33.691735\n", - "UA_entropyFF = 342.23787388998386\n", - "UA_entropyTT = 214.6851895681262\n", - "Per residue entropy:\n", - " RESNAME RESID FF_ENTROPY(J/mol/K) TT_ENTROPY(J/mol/K)\n", - "0 DA 1 44.510450 22.648880\n", - "1 DA 2 34.731911 20.615160\n", - "2 DA 3 36.109735 23.625295\n", - "3 DA 4 38.205923 23.624781\n", - "4 DT 5 57.674748 36.771516\n", - "5 DT 6 47.126494 26.344506\n", - "6 DT 7 44.461274 27.363316\n", - "7 DT 8 39.417339 33.691735\n" - ] - } - ], - "source": [ - "UA_entropyFF, UA_entropyTT, res_df = EF.compute_entropy_UA_level_multiprocess(\n", - " arg_hostDataContainer = dataContainer,\n", - " arg_outFile = outfile,\n", - " arg_selector = selection_string, \n", - " arg_moutFile = moutFile,\n", - " arg_nmdFile = nmdFile,\n", - " arg_fScale = fScale,\n", - " arg_tScale = tScale,\n", - " arg_temper = temper,\n", - " arg_verbose = verbose,\n", - " arg_csv_out= csv_out,\n", - " arg_axis_list = axis_list,\n", - " arg_thread= thread,\n", - ")\n", - "print(f\"UA_entropyFF = {UA_entropyFF}\")\n", - "print(f\"UA_entropyTT = {UA_entropyTT}\")\n", - "print(\"Per residue entropy:\")\n", - "print(res_df)" - ] - }, - { - "cell_type": "markdown", - "id": "0acb332e-4983-4ff8-ae68-48a7e0b17ecb", - "metadata": {}, - "source": [ - "### Topographical entropy\n", - "$S^{topo}_{UA}$" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "ae1a1df9-8f19-4618-8e84-7403edf6905f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "------------------------------------------------------------\n", - "Topographical entropy of residue side chains \n", - "computed using all the dihedrals with AEM method\n", - "------------------------------------------------------------\n", - "----------Working on resid : 1 (DA)----------\n", - "Found 18 exclusive dihedrals in residue DA1\n", - "Found 18 dihedrals which collectively acquire 8 unique conformers\n", - "Residue Topographical Entropy from AEM (DA 1) : 13.4948\n", - "----------Working on resid : 2 (DA)----------\n", - "Found 20 exclusive dihedrals in residue DA2\n", - "Found 20 dihedrals which collectively acquire 4 unique conformers\n", - "Residue Topographical Entropy from AEM (DA 2) : 7.6987\n", - "----------Working on resid : 3 (DA)----------\n", - "Found 20 exclusive dihedrals in residue DA3\n", - "Found 20 dihedrals which collectively acquire 2 unique conformers\n", - "Residue Topographical Entropy from AEM (DA 3) : 2.8480\n", - "----------Working on resid : 4 (DA)----------\n", - "Found 19 exclusive dihedrals in residue DA4\n", - "Found 19 dihedrals which collectively acquire 2 unique conformers\n", - "Residue Topographical Entropy from AEM (DA 4) : 1.0331\n", - "----------Working on resid : 5 (DT)----------\n", - "Found 14 exclusive dihedrals in residue DT5\n", - "Found 14 dihedrals which collectively acquire 4 unique conformers\n", - "Residue Topographical Entropy from AEM (DT 5) : 7.8987\n", - "----------Working on resid : 6 (DT)----------\n", - "Found 16 exclusive dihedrals in residue DT6\n", - "Found 16 dihedrals which collectively acquire 2 unique conformers\n", - "Residue Topographical Entropy from AEM (DT 6) : 1.0331\n", - "----------Working on resid : 7 (DT)----------\n", - "Found 16 exclusive dihedrals in residue DT7\n", - "Found 16 dihedrals which collectively acquire 2 unique conformers\n", - "Residue Topographical Entropy from AEM (DT 7) : 1.0331\n", - "----------Working on resid : 8 (DT)----------\n", - "Found 15 exclusive dihedrals in residue DT8\n", - "Found 15 dihedrals which collectively acquire 1 unique conformers\n", - "Residue Topographical Entropy from AEM (DT 8) : -0.0000\n", - "------------------------------------------------------------\n", - "Total Topog. Entropy (AEM) : 35.040\n", - "------------------------------------------------------------\n", - "result_entropyAEM = 35.039528380573834\n" - ] - } - ], - "source": [ - "result_entropyAEM = EF.compute_topographical_entropy_AEM(\n", - " arg_hostDataContainer = dataContainer, \n", - " arg_selector = selection_string,\n", - " arg_outFile = outfile, \n", - " arg_verbose = verbose\n", - ")\n", - "\n", - "print(f\"result_entropyAEM = {result_entropyAEM}\")" - ] - }, - { - "cell_type": "markdown", - "id": "ead0f792-4665-4014-aa34-7f71656787a0", - "metadata": {}, - "source": [ - "### Total Entropy" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "a71f0874-9ab2-4b6d-a3cb-00c8d3818544", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Total Entropy = 1196.1029175959927 J/mol/K\n" - ] - } - ], - "source": [ - "total = wm_entropyFF + wm_entropyTT + res_entropyFF + res_entropyTT + UA_entropyFF + UA_entropyTT + result_entropyAEM\n", - "print(f\"Total Entropy = {total} J/mol/K\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ed3a3f9b-ee4b-4199-983b-57bce59c4b34", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.4" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/notebook/Protein_example.ipynb b/docs/notebook/Protein_example.ipynb deleted file mode 100644 index 88f0851..0000000 --- a/docs/notebook/Protein_example.ipynb +++ /dev/null @@ -1,3928 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "68093ba0-442f-4a4a-b260-4fc51403ad13", - "metadata": { - "tags": [] - }, - "source": [ - "# Calculating entropy of lysozyme (Solute and Solvent)" - ] - }, - { - "cell_type": "markdown", - "id": "eee6cbca-b665-4e09-84ee-b92ac335c832", - "metadata": {}, - "source": [ - "## Loading Data\n", - "1. Load your data into a MDAnalysis Universe. " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "9b35a790-7289-4a08-b645-e4854ba311fb", - "metadata": {}, - "outputs": [], - "source": [ - "import MDAnalysis as mda\n", - "# set the working dir to the root of repo inorder to use these path\n", - "tprfile = \"data/1AKI_prod.tpr\"\n", - "trrfile = \"data/1AKI_prod.trr\"\n", - "u = mda.Universe(tprfile, trrfile)" - ] - }, - { - "cell_type": "markdown", - "id": "9d47f142-c8ef-4041-8ad4-71e27c8b752d", - "metadata": {}, - "source": [ - "2. Trim the data to reduce analysis time" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "40e0ec8e-f99d-4402-a2ac-7517f2fbe981", - "metadata": {}, - "outputs": [], - "source": [ - "from CodeEntropy.IO import MDAUniverseHelper as MDAHelper\n", - "# since this trajectory only contains the DNA strand\n", - "selection_string_pre_process = 'protein'\n", - "\n", - "reduced_frame = MDAHelper.new_U_select_frame(u)\n", - "\n", - "reduced_atom = MDAHelper.new_U_select_atom(reduced_frame, selection_string_pre_process)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "d96a9e6f-488b-4c40-8fa7-961161c17aab", - "metadata": {}, - "source": [ - "3. parse the data into a CodeEntropy data object" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "623181d4-78ee-40fa-bf74-bd25ad0ba241", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of atoms : 1960\n", - "Number of frames : 101\n" - ] - } - ], - "source": [ - "from CodeEntropy.ClassCollection import DataContainer as DC\n", - "dataContainer = DC.DataContainer(reduced_atom)" - ] - }, - { - "cell_type": "markdown", - "id": "3ea1095d-674d-4760-9de5-ff1978b51710", - "metadata": {}, - "source": [ - "## Performing calculation\n", - "The total entropy for a system is taken as the sum of seven terms:\n", - "$S_{total} = S^{transvib}_{WM} + S^{rovib}_{WM} + S^{transvib}_{R} + S^{rovib}_{R} + S^{transvib}_{UA} + S^{rovib}_{UA} + S^{topo}_{UA}$" - ] - }, - { - "cell_type": "markdown", - "id": "0b9e3646-c608-4f4d-8d5f-077aceeccb22", - "metadata": {}, - "source": [ - "### Set Parameters" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "c7a0ca03-4866-4972-a4eb-cab26addc5bb", - "metadata": {}, - "outputs": [], - "source": [ - "from CodeEntropy.FunctionCollection import EntropyFunctions as EF\n", - "#Only the part of interest remained\n", - "selection_string = \"all\"\n", - "# axis_list = [\"C5'\", \"C4'\", \"C3'\"] using default \n", - "outfile = None\n", - "moutFile = None\n", - "nmdFile = None\n", - "csv_out = None\n", - "tScale = 1.0\n", - "fScale = 1.0\n", - "temper = 300.0 #K\n", - "verbose = 3\n", - "thread = 4" - ] - }, - { - "cell_type": "markdown", - "id": "226c0598-833b-478d-9f02-b288e42903c9", - "metadata": {}, - "source": [ - "### Whole-molecule Level \n", - "$S^{transvib}_{WM} + S^{rovib}_{WM}$" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "6964e070-ac24-42da-9efc-42e8723524ce", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "------------------------------------------------------------\n", - " Hierarchy level. --> Whole molecule <-- \n", - "------------------------------------------------------------\n", - "Total number of beads at the whole molecule level = 1\n", - "Assigning Translation and Rotation Axes @ whole molecule level-> Done\n", - "Updating Local coordinates-> Done\n", - "Updating Local forces-> Done\n", - "Updating Local torques-> Done\n", - "Weighting forces and torques-> Done\n", - "Updating the submatrices ... \n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "Done\n", - "Generating Quadrants-> Done\n", - "Diagonalizing-> Done\n", - "Changing the units of eigen values to SI units-> Done\n", - "Sorting spectrum in ascending order of frequencies-> Done\n", - "Entropy values:\n", - "FF Entropy (Whole mol level) : 53.0696 J/mol/K\n", - "TT Entropy (Whole mol level) : 48.4799 J/mol/K\n", - "wm_entropyFF = 53.069649409467544\n", - "wm_entropyTT = 48.47988928826726\n" - ] - } - ], - "source": [ - "wm_entropyFF, wm_entropyTT = EF.compute_entropy_whole_molecule_level(\n", - " arg_hostDataContainer = dataContainer,\n", - " arg_outFile = outfile,\n", - " arg_selector = selection_string, \n", - " arg_moutFile = moutFile,\n", - " arg_nmdFile = nmdFile,\n", - " arg_fScale = fScale,\n", - " arg_tScale = tScale,\n", - " arg_temper = temper,\n", - " arg_verbose = verbose\n", - ")\n", - "print(f\"wm_entropyFF = {wm_entropyFF}\")\n", - "print(f\"wm_entropyTT = {wm_entropyTT}\")" - ] - }, - { - "cell_type": "markdown", - "id": "211e89f3-e216-4e25-bd36-cf314126c65c", - "metadata": {}, - "source": [ - "### Residue level\n", - "$S^{transvib}_{R} + S^{rovib}_{R}$" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "4fdb9d29-78e9-4831-bb4a-d53e31d94e39", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "------------------------------------------------------------\n", - " Hierarchy level. --> Residues <-- \n", - "------------------------------------------------------------\n", - "LYS1\n", - "VAL2\n", - "PHE3\n", - "GLY4\n", - "ARG5\n", - "CYS6\n", - "GLU7\n", - "LEU8\n", - "ALA9\n", - "ALA10\n", - "ALA11\n", - "MET12\n", - "LYS13\n", - "ARG14\n", - "HIS15\n", - "GLY16\n", - "LEU17\n", - "ASP18\n", - "ASN19\n", - "TYR20\n", - "ARG21\n", - "GLY22\n", - "TYR23\n", - "SER24\n", - "LEU25\n", - "GLY26\n", - "ASN27\n", - "TRP28\n", - "VAL29\n", - "CYS30\n", - "ALA31\n", - "ALA32\n", - "LYS33\n", - "PHE34\n", - "GLU35\n", - "SER36\n", - "ASN37\n", - "PHE38\n", - "ASN39\n", - "THR40\n", - "GLN41\n", - "ALA42\n", - "THR43\n", - "ASN44\n", - "ARG45\n", - "ASN46\n", - "THR47\n", - "ASP48\n", - "GLY49\n", - "SER50\n", - "THR51\n", - "ASP52\n", - "TYR53\n", - "GLY54\n", - "ILE55\n", - "LEU56\n", - "GLN57\n", - "ILE58\n", - "ASN59\n", - "SER60\n", - "ARG61\n", - "TRP62\n", - "TRP63\n", - "CYS64\n", - "ASN65\n", - "ASP66\n", - "GLY67\n", - "ARG68\n", - "THR69\n", - "PRO70\n", - "GLY71\n", - "SER72\n", - "ARG73\n", - "ASN74\n", - "LEU75\n", - "CYS76\n", - "ASN77\n", - "ILE78\n", - "PRO79\n", - "CYS80\n", - "SER81\n", - "ALA82\n", - "LEU83\n", - "LEU84\n", - "SER85\n", - "SER86\n", - "ASP87\n", - "ILE88\n", - "THR89\n", - "ALA90\n", - "SER91\n", - "VAL92\n", - "ASN93\n", - "CYS94\n", - "ALA95\n", - "LYS96\n", - "LYS97\n", - "ILE98\n", - "VAL99\n", - "SER100\n", - "ASP101\n", - "GLY102\n", - "ASN103\n", - "GLY104\n", - "MET105\n", - "ASN106\n", - "ALA107\n", - "TRP108\n", - "VAL109\n", - "ALA110\n", - "TRP111\n", - "ARG112\n", - "ASN113\n", - "ARG114\n", - "CYS115\n", - "LYS116\n", - "GLY117\n", - "THR118\n", - "ASP119\n", - "VAL120\n", - "GLN121\n", - "ALA122\n", - "TRP123\n", - "ILE124\n", - "ARG125\n", - "GLY126\n", - "CYS127\n", - "ARG128\n", - "LEU129\n", - "Total number of beads at the residue level = 129\n", - "Assigning Translation Axes @ residue level-> Done\n", - "Assigning Rotational Axes @ residue level->\n", - " 1 2 3 4 5 \n", - " 6 7 8 9 10 \n", - " 11 12 13 14 15 \n", - " 16 17 18 19 20 \n", - " 21 22 23 24 25 \n", - " 26 27 28 29 30 \n", - " 31 32 33 34 35 \n", - " 36 37 38 39 40 \n", - " 41 42 43 44 45 \n", - " 46 47 48 49 50 \n", - " 51 52 53 54 55 \n", - " 56 57 58 59 60 \n", - " 61 62 63 64 65 \n", - " 66 67 68 69 70 \n", - " 71 72 73 74 75 \n", - " 76 77 78 79 80 \n", - " 81 82 83 84 85 \n", - " 86 87 88 89 90 \n", - " 91 92 93 94 95 \n", - " 96 97 98 99 100 \n", - " 101 102 103 104 105 \n", - " 106 107 108 109 110 \n", - " 111 112 113 114 115 \n", - " 116 117 118 119 120 \n", - " 121 122 123 124 125 \n", - " 126 127 128 129 \n", - "Done\n", - "Updating Local forces-> Done\n", - "Updating Local coordinates-> Done\n", - "Updating Local torques-> Done\n", - "Weighting forces and torques-> Done\n", - "Updating the submatrices ... \n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "Done\n", - "Generating Quadrants-> Done\n", - "Diagonalizing-> Done\n", - "Changing the units of eigen values to SI units-> Done\n", - "Sorting spectrum in ascending order of frequencies-> Done\n", - "Entropy values:\n", - "FF Entropy (Residue level) : nan J/mol/K\n", - "TT Entropy (Residue level) : nan J/mol/K\n", - "res_entropyFF = nan\n", - "res_entropyTT = nan\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/donald/miniconda3/envs/CEtrial/lib/python3.10/site-packages/CodeEntropy/FunctionCollection/EntropyFunctions.py:47: RuntimeWarning: invalid value encountered in sqrt\n", - " return nmp.sqrt((arg_lambdas)/UAC.get_KT2J(arg_temper))/(2*nmp.pi)\n", - "/home/donald/miniconda3/envs/CEtrial/lib/python3.10/site-packages/CodeEntropy/FunctionCollection/EntropyFunctions.py:59: RuntimeWarning: invalid value encountered in sqrt\n", - " afac = UAC.M2ANG * UAC.sqrtKG2AMU * nmp.divide(UAC.get_KT2J(arg_temper), nmp.sqrt(arg_lambdas))\n" - ] - } - ], - "source": [ - "res_entropyFF, res_entropyTT = EF.compute_entropy_residue_level(\n", - " arg_hostDataContainer = dataContainer,\n", - " arg_outFile = outfile,\n", - " arg_selector = selection_string, \n", - " arg_moutFile = moutFile,\n", - " arg_nmdFile = nmdFile,\n", - " arg_fScale = fScale,\n", - " arg_tScale = tScale,\n", - " arg_temper = temper,\n", - " arg_verbose = verbose,\n", - ")\n", - "# the result is Nan due to not enough sampling time see FAQ\n", - "print(f\"res_entropyFF = {res_entropyFF}\")\n", - "print(f\"res_entropyTT = {res_entropyTT}\")" - ] - }, - { - "cell_type": "markdown", - "id": "bcc345e5-0bed-430e-bde8-6141bcbd18c4", - "metadata": {}, - "source": [ - "### United Atom Level\n", - "$S^{transvib}_{UA} + S^{rovib}_{UA}$" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "1b71a4c3-bfe5-47e9-8206-a362479d1883", - "metadata": { - "tags": [] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (15,15) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (27,27) -> (20, 20)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (15,15) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (42,42) -> (19, 19)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (21,21) -> (12, 12)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (13, 13)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (36,36) -> (17, 17)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (21,21) -> (12, 12)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (33,33) -> (17, 17)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (27,27) -> (19, 19)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (12,12) -> (5, 5)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (33,33) -> (21, 21)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (15,15) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (12,12) -> (5, 5)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (15,15) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (33,33) -> (21, 21)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (33,33) -> (21, 21)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (27,27) -> (19, 19)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (36,36) -> (17, 17)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (30,30) -> (13, 13)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (12,12) -> (5, 5)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (9, 9)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (27,27) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (33,33) -> (17, 17)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (15, 15)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (15, 15)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (15, 15)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (12,12) -> (5, 5)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (27,27) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (15,15) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (9, 9)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (15, 15)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (21,21) -> (11, 11)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (33,33) -> (17, 17)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (15, 15)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (27,27) -> (13, 13)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (12,12) -> (5, 5)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (12,12) -> (5, 5)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (21,21) -> (11, 11)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (9, 9)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (15, 15)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (21,21) -> (11, 11)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (33,33) -> (21, 21)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (27,27) -> (13, 13)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (15,15) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (21,21) -> (11, 11)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (9, 9)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (21,21) -> (11, 11)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (21,21) -> (11, 11)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (12,12) -> (5, 5)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (36,36) -> (17, 17)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (33,33) -> (21, 21)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (12,12) -> (5, 5)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (9, 9)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (15,15) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (33,33) -> (21, 21)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (42,42) -> (19, 19)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (33,33) -> (21, 21)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (9, 9)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (15, 15)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (21,21) -> (12, 12)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (15, 15)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (42,42) -> (19, 19)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (15, 15)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (9, 9)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (9, 9)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (9, 9)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (15,15) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (12,12) -> (5, 5)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (15, 15)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (27,27) -> (19, 19)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (15, 15)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (12,12) -> (5, 5)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (21,21) -> (11, 11)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (21,21) -> (11, 11)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (27,27) -> (19, 19)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (13, 13)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (15,15) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (15, 15)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (9, 9)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (21,21) -> (12, 12)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (21,21) -> (12, 12)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (15,15) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (15,15) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (21,21) -> (11, 11)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (42,42) -> (19, 19)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (42,42) -> (19, 19)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (21,21) -> (12, 12)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (33,33) -> (21, 21)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (27,27) -> (13, 13)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (27,27) -> (15, 15)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (33,33) -> (21, 21)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (15,15) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (10, 10)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (42,42) -> (19, 19)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (33,33) -> (21, 21)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (18,18) -> (7, 7)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (24,24) -> (15, 15)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (27,27) -> (19, 19)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (33,33) -> (21, 21)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (12,12) -> (5, 5)\n", - "\n", - "\n", - "\n", - "Finished updating submatrix FF\n", - "Finished updating submatrix TT\n", - "A shape change has occured (12,12) -> (5, 5)\n", - "\n", - "\n", - "\n", - " RESNAME RESID FF_ENTROPY(J/mol/K) TT_ENTROPY(J/mol/K)\n", - "0 LYS 1 47.664564 20.505898\n", - "1 VAL 2 24.011823 21.313504\n", - "2 PHE 3 55.958434 10.193560\n", - "3 GLY 4 2.999624 3.759251\n", - "4 ARG 5 61.456708 17.730948\n", - ".. ... ... ... ...\n", - "124 ARG 125 63.140374 16.711839\n", - "125 GLY 126 2.895269 3.177767\n", - "126 CYS 127 17.202678 4.426629\n", - "127 ARG 128 53.673302 18.049308\n", - "128 LEU 129 42.255384 21.776413\n", - "\n", - "[129 rows x 4 columns]\n", - "UA_entropyFF = 3963.009085087373\n", - "UA_entropyTT = 1482.9513921402554\n", - "Per residue entropy:\n", - " RESNAME RESID FF_ENTROPY(J/mol/K) TT_ENTROPY(J/mol/K)\n", - "0 LYS 1 47.665 20.506\n", - "1 VAL 2 24.012 21.314\n", - "2 PHE 3 55.958 10.194\n", - "3 GLY 4 3.000 3.759\n", - "4 ARG 5 61.457 17.731\n", - "5 CYS 6 16.617 4.608\n", - "6 GLU 7 40.213 6.854\n", - "7 LEU 8 30.511 22.836\n", - "8 ALA 9 9.147 9.448\n", - "9 ALA 10 8.473 9.005\n", - "10 ALA 11 9.669 11.628\n", - "11 MET 12 43.278 18.025\n", - "12 LYS 13 46.282 17.108\n", - "13 ARG 14 59.491 16.975\n", - "14 HIS 15 40.136 7.114\n", - "15 GLY 16 3.172 3.808\n", - "16 LEU 17 36.618 25.058\n", - "17 ASP 18 29.500 5.330\n", - "18 ASN 19 28.558 7.565\n", - "19 TYR 20 67.413 11.335\n", - "20 ARG 21 60.890 19.746\n", - "21 GLY 22 3.073 4.075\n", - "22 TYR 23 64.252 11.145\n", - "23 SER 24 16.112 5.778\n", - "24 LEU 25 33.514 22.676\n", - "25 GLY 26 3.979 3.685\n", - "26 ASN 27 29.926 8.110\n", - "27 TRP 28 85.491 12.250\n", - "28 VAL 29 25.992 19.532\n", - "29 CYS 30 17.641 4.288\n", - "30 ALA 31 9.177 10.248\n", - "31 ALA 32 7.694 11.034\n", - "32 LYS 33 40.827 16.918\n", - "33 PHE 34 49.631 8.741\n", - "34 GLU 35 35.417 4.892\n", - "35 SER 36 15.259 5.150\n", - "36 ASN 37 28.803 7.545\n", - "37 PHE 38 46.906 10.150\n", - "38 ASN 39 30.360 8.962\n", - "39 THR 40 25.959 13.927\n", - "40 GLN 41 37.043 11.295\n", - "41 ALA 42 9.097 9.656\n", - "42 THR 43 26.935 11.843\n", - "43 ASN 44 31.399 8.968\n", - "44 ARG 45 55.807 17.431\n", - "45 ASN 46 27.882 7.341\n", - "46 THR 47 24.190 11.782\n", - "47 ASP 48 27.283 4.726\n", - "48 GLY 49 2.713 4.136\n", - "49 SER 50 14.932 6.038\n", - "50 THR 51 24.794 11.252\n", - "51 ASP 52 30.160 3.031\n", - "52 TYR 53 62.321 8.692\n", - "53 GLY 54 3.338 3.315\n", - "54 ILE 55 36.257 24.304\n", - "55 LEU 56 33.649 20.504\n", - "56 GLN 57 40.068 13.830\n", - "57 ILE 58 35.351 23.956\n", - "58 ASN 59 34.133 7.317\n", - "59 SER 60 16.537 6.391\n", - "60 ARG 61 60.919 17.611\n", - "61 TRP 62 72.961 11.535\n", - "62 TRP 63 82.282 11.660\n", - "63 CYS 64 16.232 5.647\n", - "64 ASN 65 31.015 8.000\n", - "65 ASP 66 30.281 4.036\n", - "66 GLY 67 3.565 4.403\n", - "67 ARG 68 55.927 19.637\n", - "68 THR 69 24.661 12.365\n", - "69 PRO 70 17.745 8.285\n", - "70 GLY 71 2.506 3.780\n", - "71 SER 72 16.323 6.312\n", - "72 ARG 73 62.589 19.218\n", - "73 ASN 74 32.753 8.413\n", - "74 LEU 75 34.744 24.451\n", - "75 CYS 76 17.673 3.596\n", - "76 ASN 77 28.534 7.736\n", - "77 ILE 78 31.988 22.941\n", - "78 PRO 79 18.184 9.285\n", - "79 CYS 80 17.740 3.788\n", - "80 SER 81 15.497 5.656\n", - "81 ALA 82 8.700 10.753\n", - "82 LEU 83 33.247 21.425\n", - "83 LEU 84 33.519 22.381\n", - "84 SER 85 16.122 6.542\n", - "85 SER 86 16.735 6.222\n", - "86 ASP 87 28.866 4.817\n", - "87 ILE 88 35.424 24.169\n", - "88 THR 89 28.028 12.273\n", - "89 ALA 90 8.834 12.524\n", - "90 SER 91 18.020 6.087\n", - "91 VAL 92 25.306 18.856\n", - "92 ASN 93 28.827 6.558\n", - "93 CYS 94 17.726 4.563\n", - "94 ALA 95 8.972 10.692\n", - "95 LYS 96 43.503 21.195\n", - "96 LYS 97 41.549 17.780\n", - "97 ILE 98 34.466 22.540\n", - "98 VAL 99 24.460 19.535\n", - "99 SER 100 14.412 4.680\n", - "100 ASP 101 29.641 5.317\n", - "101 GLY 102 3.245 4.314\n", - "102 ASN 103 29.878 7.846\n", - "103 GLY 104 3.379 3.605\n", - "104 MET 105 41.603 18.059\n", - "105 ASN 106 32.244 6.004\n", - "106 ALA 107 7.905 12.311\n", - "107 TRP 108 67.997 11.805\n", - "108 VAL 109 27.117 20.986\n", - "109 ALA 110 9.354 9.803\n", - "110 TRP 111 83.529 12.350\n", - "111 ARG 112 64.911 18.844\n", - "112 ASN 113 28.345 7.407\n", - "113 ARG 114 57.635 17.376\n", - "114 CYS 115 15.748 2.943\n", - "115 LYS 116 40.714 17.680\n", - "116 GLY 117 2.618 2.423\n", - "117 THR 118 25.468 13.182\n", - "118 ASP 119 28.226 4.655\n", - "119 VAL 120 25.895 20.559\n", - "120 GLN 121 38.428 10.389\n", - "121 ALA 122 8.764 10.153\n", - "122 TRP 123 71.200 12.010\n", - "123 ILE 124 33.199 21.979\n", - "124 ARG 125 63.140 16.712\n", - "125 GLY 126 2.895 3.178\n", - "126 CYS 127 17.203 4.427\n", - "127 ARG 128 53.673 18.049\n", - "128 LEU 129 42.255 21.776\n" - ] - } - ], - "source": [ - "UA_entropyFF, UA_entropyTT, res_df = EF.compute_entropy_UA_level_multiprocess(\n", - " arg_hostDataContainer = dataContainer,\n", - " arg_outFile = outfile,\n", - " arg_selector = selection_string, \n", - " arg_moutFile = moutFile,\n", - " arg_nmdFile = nmdFile,\n", - " arg_fScale = fScale,\n", - " arg_tScale = tScale,\n", - " arg_temper = temper,\n", - " arg_verbose = verbose,\n", - " arg_csv_out= csv_out,\n", - " arg_thread = thread\n", - ")\n", - "print(f\"UA_entropyFF = {UA_entropyFF}\")\n", - "print(f\"UA_entropyTT = {UA_entropyTT}\")\n", - "print(\"Per residue entropy:\")\n", - "import pandas as pd\n", - "with pd.option_context('display.max_rows', None,\n", - " 'display.max_columns', None,\n", - " 'display.precision', 3,\n", - " ):\n", - " print(res_df)" - ] - }, - { - "cell_type": "markdown", - "id": "0acb332e-4983-4ff8-ae68-48a7e0b17ecb", - "metadata": {}, - "source": [ - "### Topographical entropy\n", - "$S^{topo}_{UA}$" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "ae1a1df9-8f19-4618-8e84-7403edf6905f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "------------------------------------------------------------\n", - "Topographical entropy of BB dihedrals \n", - " computed using the pLogp formalism\n", - "------------------------------------------------------------\n", - "Found a total of 886 BB dihedrals.\n", - "Dihedral 143 145 147 153 : -0.0000 ( 10)\n", - "Dihedral 1136 1151 1153 1155 : -0.0000 (-10000)\n", - "Dihedral 650 660 662 664 : -0.0000 (-10000)\n", - "Dihedral 1312 1311 1313 1315 : -0.0000 (-10000)\n", - "Dihedral 1397 1399 1405 1407 : 2.0939 ( 94)\n", - "Dihedral 67 69 89 91 : 0.4618 ( 5)\n", - "Dihedral 1073 1064 1065 1076 : -0.0000 ( 70)\n", - "Dihedral 1824 1832 1830 1831 : -0.0000 (-10000)\n", - "Dihedral 1009 1017 1019 1021 : -0.0000 (-10000)\n", - "Dihedral 153 155 157 159 : -0.0000 ( 11)\n", - "Dihedral 383 398 400 402 : -0.0000 (-10000)\n", - "Dihedral 1064 1065 1076 1078 : 2.4983 ( 70)\n", - "Dihedral 537 535 546 548 : 5.7301 ( 35)\n", - "Dihedral 636 638 640 646 : 0.8087 ( 42)\n", - "Dihedral 758 760 770 772 : -0.0000 ( 51)\n", - "Dihedral 1369 1381 1383 1385 : -0.0000 (-10000)\n", - "Dihedral 40 42 58 60 : -0.0000 ( 3)\n", - "Dihedral 1152 1151 1153 1155 : -0.0000 (-10000)\n", - "Dihedral 1301 1303 1311 1313 : -0.0000 ( 87)\n", - "Dihedral 463 471 469 470 : -0.0000 (-10000)\n", - "Dihedral 680 678 698 700 : 0.4618 ( 45)\n", - "Dihedral 1218 1220 1222 1224 : -0.0000 ( 81)\n", - "Dihedral 1405 1407 1409 1415 : -0.0000 ( 95)\n", - "Dihedral 770 772 774 782 : -0.0000 ( 52)\n", - "Dihedral 370 372 379 381 : -0.0000 ( 24)\n", - "Dihedral 120 118 133 135 : 1.8735 ( 8)\n", - "Dihedral 1614 1628 1626 1627 : -0.0000 (-10000)\n", - "Dihedral 760 770 772 774 : -0.0000 (-10000)\n", - "Dihedral 1260 1262 1277 1279 : -0.0000 ( 84)\n", - "Dihedral 1199 1197 1208 1210 : -0.0000 ( 79)\n", - "Dihedral 353 351 368 370 : 0.8087 ( 23)\n", - "Dihedral 99 101 103 105 : -0.0000 ( 7)\n", - "Dihedral 1662 1664 1684 1686 : 4.0199 ( 112)\n", - "Dihedral 1824 1830 1832 1834 : -0.0000 (-10000)\n", - "Dihedral 1939 1938 1940 1942 : -0.0000 (-10000)\n", - "Dihedral 411 409 419 421 : 3.3461 ( 27)\n", - "Dihedral 561 571 573 575 : -0.0000 (-10000)\n", - "Dihedral 1212 1220 1218 1219 : -0.0000 (-10000)\n", - "Dihedral 517 515 531 533 : 4.9082 ( 34)\n", - "Dihedral 571 573 575 591 : 3.4931 ( 38)\n", - "Dihedral 983 985 991 993 : -0.0000 ( 64)\n", - "Dihedral 548 550 557 559 : 5.3651 ( 36)\n", - "Dihedral 1179 1194 1196 1205 : -0.0000 (-10000)\n", - "Dihedral 561 573 571 572 : -0.0000 (-10000)\n", - "Dihedral 169 167 180 182 : 5.4624 ( 12)\n", - "Dihedral 285 295 297 299 : -0.0000 (-10000)\n", - "Dihedral 1258 1260 1262 1277 : -0.0000 ( 84)\n", - "Dihedral 997 995 1005 1007 : -0.0000 ( 65)\n", - "Dihedral 153 155 157 163 : -0.0000 ( 11)\n", - "Dihedral 1153 1155 1161 1163 : -0.0000 ( 76)\n", - "Dihedral 605 607 609 619 : -0.0000 ( 40)\n", - "Dihedral 745 747 749 751 : 1.3859 ( 50)\n", - "Dihedral 746 745 747 749 : -0.0000 (-10000)\n", - "Dihedral 1762 1761 1763 1765 : -0.0000 (-10000)\n", - "Dihedral 24 26 38 40 : -0.0000 ( 2)\n", - "Dihedral 898 900 902 904 : -0.0000 ( 60)\n", - "Dihedral 1179 1196 1194 1195 : -0.0000 (-10000)\n", - "Dihedral 1218 1220 1222 1229 : -0.0000 ( 81)\n", - "Dihedral 1017 1019 1021 1024 : -0.0000 ( 67)\n", - "Dihedral 1879 1877 1897 1899 : -0.0000 ( 125)\n", - "Dihedral 1233 1241 1239 1240 : -0.0000 (-10000)\n", - "Dihedral 1277 1279 1281 1283 : 0.4618 ( 85)\n", - "Dihedral 1305 1303 1311 1313 : -0.0000 ( 87)\n", - "Dihedral 1938 1940 1942 1944 : 1.3859 ( 129)\n", - "Dihedral 1208 1210 1212 1218 : -0.0000 ( 80)\n", - "Dihedral 271 273 281 283 : 5.5457 ( 18)\n", - "Dihedral 660 662 664 666 : 5.3651 ( 44)\n", - "Dihedral 1132 1134 1136 1138 : -0.0000 ( 75)\n", - "Dihedral 1439 1441 1459 1461 : 4.5590 ( 97)\n", - "Dihedral 443 445 447 459 : -0.0000 ( 29)\n", - "Dihedral 1443 1441 1459 1461 : 5.2534 ( 97)\n", - "Dihedral 1095 1094 1096 1098 : -0.0000 (-10000)\n", - "Dihedral 1916 1918 1938 1940 : 4.3579 ( 128)\n", - "Dihedral 546 548 550 552 : 5.6151 ( 36)\n", - "Dihedral 664 676 674 675 : -0.0000 (-10000)\n", - "Dihedral 137 145 143 144 : -0.0000 (-10000)\n", - "Dihedral 1906 1908 1914 1916 : -0.0000 ( 127)\n", - "Dihedral 829 831 833 848 : -0.0000 ( 56)\n", - "Dihedral 1005 1007 1009 1017 : -0.0000 ( 66)\n", - "Dihedral 471 473 479 481 : 3.1922 ( 31)\n", - "Dihedral 981 983 985 991 : 2.0939 ( 64)\n", - "Dihedral 1688 1698 1700 1702 : -0.0000 (-10000)\n", - "Dihedral 573 575 591 593 : -0.0000 ( 38)\n", - "Dihedral 483 491 489 490 : -0.0000 (-10000)\n", - "Dihedral 143 145 147 149 : -0.0000 ( 10)\n", - "Dihedral 405 407 409 419 : -0.0000 ( 27)\n", - "Dihedral 62 65 67 69 : -0.0000 (-10000)\n", - "Dihedral 963 961 981 983 : 3.4931 ( 63)\n", - "Dihedral 133 135 137 139 : -0.0000 ( 9)\n", - "Dihedral 182 184 202 204 : 2.4983 ( 13)\n", - "Dihedral 1722 1724 1726 1728 : 0.8087 ( 115)\n", - "Dihedral 1830 1832 1834 1836 : -0.0000 ( 123)\n", - "Dihedral 1908 1914 1916 1918 : -0.0000 (-10000)\n", - "Dihedral 1834 1856 1854 1855 : -0.0000 (-10000)\n", - "Dihedral 913 935 933 934 : -0.0000 (-10000)\n", - "Dihedral 961 983 981 982 : -0.0000 (-10000)\n", - "Dihedral 664 674 676 678 : -0.0000 (-10000)\n", - "Dihedral 1240 1239 1241 1243 : -0.0000 (-10000)\n", - "Dihedral 1736 1754 1756 1758 : -0.0000 (-10000)\n", - "Dihedral 702 712 714 716 : -0.0000 (-10000)\n", - "Dihedral 1194 1197 1196 1205 : -0.0000 ( 79)\n", - "Dihedral 144 143 145 147 : -0.0000 (-10000)\n", - "Dihedral 1120 1122 1132 1134 : -0.0000 ( 74)\n", - "Dihedral 1821 1820 1822 1824 : -0.0000 (-10000)\n", - "Dihedral 1586 1588 1590 1610 : -0.0000 ( 108)\n", - "Dihedral 1179 1194 1196 1197 : -0.0000 (-10000)\n", - "Dihedral 89 91 93 95 : -0.0000 ( 6)\n", - "Dihedral 718 716 726 728 : 1.8735 ( 47)\n", - "Dihedral 409 421 419 420 : -0.0000 (-10000)\n", - "Dihedral 958 957 959 961 : -0.0000 (-10000)\n", - "Dihedral 854 852 865 867 : 2.8621 ( 57)\n", - "Dihedral 163 165 167 169 : -0.0000 ( 12)\n", - "Dihedral 1545 1547 1549 1551 : -0.0000 ( 105)\n", - "Dihedral 256 254 269 271 : 0.8087 ( 17)\n", - "Dihedral 480 479 481 483 : -0.0000 (-10000)\n", - "Dihedral 320 340 342 344 : -0.0000 (-10000)\n", - "Dihedral 105 103 114 116 : 2.0939 ( 7)\n", - "Dihedral 1858 1875 1873 1874 : -0.0000 (-10000)\n", - "Dihedral 1233 1239 1241 1243 : -0.0000 (-10000)\n", - "Dihedral 934 933 935 937 : -0.0000 (-10000)\n", - "Dihedral 1638 1640 1660 1662 : 3.1922 ( 111)\n", - "Dihedral 852 865 867 869 : -0.0000 (-10000)\n", - "Dihedral 1417 1419 1437 1439 : 3.1922 ( 96)\n", - "Dihedral 902 911 909 910 : -0.0000 (-10000)\n", - "Dihedral 65 67 69 71 : -0.0000 ( 5)\n", - "Dihedral 1831 1830 1832 1834 : -0.0000 (-10000)\n", - "Dihedral 833 848 850 852 : -0.0000 (-10000)\n", - "Dihedral 287 285 295 297 : 0.4618 ( 19)\n", - "Dihedral 347 349 351 353 : -0.0000 ( 23)\n", - "Dihedral 425 423 443 445 : 5.4155 ( 28)\n", - "Dihedral 42 58 60 62 : -0.0000 (-10000)\n", - "Dihedral 1052 1062 1064 1065 : -0.0000 (-10000)\n", - "Dihedral 1610 1612 1614 1616 : -0.0000 ( 109)\n", - "Dihedral 1592 1590 1610 1612 : -0.0000 ( 108)\n", - "Dihedral 347 349 351 368 : -0.0000 ( 23)\n", - "Dihedral 1642 1640 1660 1662 : 4.3579 ( 111)\n", - "Dihedral 1241 1243 1258 1260 : 2.4983 ( 83)\n", - "Dihedral 164 163 165 167 : -0.0000 (-10000)\n", - "Dihedral 1860 1858 1873 1875 : -0.0000 ( 124)\n", - "Dihedral 782 784 786 788 : -0.0000 ( 53)\n", - "Dihedral 716 726 728 730 : -0.0000 (-10000)\n", - "Dihedral 1330 1332 1334 1336 : -0.0000 ( 89)\n", - "Dihedral 368 370 372 379 : -0.0000 ( 24)\n", - "Dihedral 473 481 479 480 : -0.0000 (-10000)\n", - "Dihedral 1336 1334 1344 1346 : 2.6848 ( 89)\n", - "Dihedral 295 297 299 316 : -0.0000 ( 20)\n", - "Dihedral 1539 1538 1540 1542 : 0.4618 (-10000)\n", - "Dihedral 1162 1161 1163 1165 : -0.0000 (-10000)\n", - "Dihedral 351 368 370 372 : -0.0000 (-10000)\n", - "Dihedral 652 650 660 662 : 1.3859 ( 43)\n", - "Dihedral 1877 1897 1899 1901 : -0.0000 (-10000)\n", - "Dihedral 1460 1459 1461 1463 : -0.0000 (-10000)\n", - "Dihedral 747 749 756 758 : -0.0000 ( 50)\n", - "Dihedral 1873 1875 1877 1897 : -0.0000 ( 125)\n", - "Dihedral 157 165 163 164 : -0.0000 (-10000)\n", - "Dihedral 157 163 165 167 : -0.0000 (-10000)\n", - "Dihedral 513 515 531 533 : 5.3111 ( 34)\n", - "Dihedral 776 774 782 784 : -0.0000 ( 52)\n", - "Dihedral 1611 1610 1612 1614 : -0.0000 (-10000)\n", - "Dihedral 885 884 886 888 : -0.0000 (-10000)\n", - "Dihedral 849 848 850 852 : -0.0000 (-10000)\n", - "Dihedral 937 959 957 958 : -0.0000 (-10000)\n", - "Dihedral 850 852 865 867 : 0.8087 ( 57)\n", - "Dihedral 1732 1734 1736 1738 : 3.6337 ( 116)\n", - "Dihedral 1176 1175 1177 1179 : -0.0000 (-10000)\n", - "Dihedral 985 993 991 992 : -0.0000 (-10000)\n", - "Dihedral 1175 1177 1179 1181 : 5.5457 ( 78)\n", - "Dihedral 1067 1065 1076 1078 : 3.1922 ( 70)\n", - "Dihedral 805 807 810 812 : -0.0000 ( 54)\n", - "Dihedral 1897 1899 1901 1904 : 0.4618 ( 126)\n", - "Dihedral 254 271 269 270 : -0.0000 (-10000)\n", - "Dihedral 1299 1301 1303 1311 : 0.4618 ( 87)\n", - "Dihedral 1660 1662 1664 1666 : -0.0000 ( 112)\n", - "Dihedral 756 758 760 762 : 1.8735 ( 51)\n", - "Dihedral 1518 1517 1519 1521 : 0.4618 (-10000)\n", - "Dihedral 1224 1222 1229 1231 : 3.0310 ( 81)\n", - "Dihedral 349 351 368 370 : 0.8087 ( 23)\n", - "Dihedral 902 909 911 913 : -0.0000 (-10000)\n", - "Dihedral 1177 1179 1194 1196 : -0.0000 ( 78)\n", - "Dihedral 959 961 981 983 : 3.8968 ( 63)\n", - "Dihedral 1089 1087 1094 1096 : 3.6337 ( 72)\n", - "Dihedral 607 609 619 621 : 5.6448 ( 40)\n", - "Dihedral 473 479 481 483 : -0.0000 (-10000)\n", - "Dihedral 511 513 515 531 : -0.0000 ( 34)\n", - "Dihedral 1777 1779 1787 1789 : 3.8968 ( 119)\n", - "Dihedral 385 383 398 400 : 5.7301 ( 25)\n", - "Dihedral 557 559 561 571 : 1.3859 ( 37)\n", - "Dihedral 625 623 636 638 : 0.8087 ( 41)\n", - "Dihedral 1085 1087 1094 1096 : 3.6337 ( 72)\n", - "Dihedral 421 423 443 445 : 5.3651 ( 28)\n", - "Dihedral 772 774 782 784 : -0.0000 ( 52)\n", - "Dihedral 1024 1026 1028 1030 : 4.4608 ( 68)\n", - "Dihedral 700 702 712 714 : -0.0000 ( 46)\n", - "Dihedral 1765 1775 1777 1779 : -0.0000 (-10000)\n", - "Dihedral 1235 1233 1239 1241 : 3.6337 ( 82)\n", - "Dihedral 1576 1578 1580 1582 : -0.0000 ( 107)\n", - "Dihedral 1395 1397 1399 1401 : -0.0000 ( 94)\n", - "Dihedral 1637 1636 1638 1640 : -0.0000 (-10000)\n", - "Dihedral 1855 1854 1856 1858 : -0.0000 (-10000)\n", - "Dihedral 1905 1904 1906 1908 : -0.0000 (-10000)\n", - "Dihedral 1080 1083 1085 1087 : -0.0000 (-10000)\n", - "Dihedral 1157 1155 1161 1163 : -0.0000 ( 76)\n", - "Dihedral 116 118 133 135 : 1.6384 ( 8)\n", - "Dihedral 1568 1566 1576 1578 : -0.0000 ( 106)\n", - "Dihedral 676 678 698 700 : -0.0000 ( 45)\n", - "Dihedral 270 269 271 273 : -0.0000 (-10000)\n", - "Dihedral 1222 1231 1229 1230 : -0.0000 (-10000)\n", - "Dihedral 592 591 593 595 : -0.0000 (-10000)\n", - "Dihedral 623 638 636 637 : -0.0000 (-10000)\n", - "Dihedral 1262 1279 1277 1278 : -0.0000 (-10000)\n", - "Dihedral 103 114 116 118 : -0.0000 (-10000)\n", - "Dihedral 1259 1258 1260 1262 : -0.0000 (-10000)\n", - "Dihedral 591 593 595 597 : -0.0000 ( 39)\n", - "Dihedral 230 243 245 247 : -0.0000 (-10000)\n", - "Dihedral 712 714 716 718 : -0.0000 ( 47)\n", - "Dihedral 1317 1315 1330 1332 : -0.0000 ( 88)\n", - "Dihedral 400 402 405 407 : 3.4931 ( 26)\n", - "Dihedral 591 593 595 605 : -0.0000 ( 39)\n", - "Dihedral 1910 1908 1914 1916 : -0.0000 ( 127)\n", - "Dihedral 1545 1547 1549 1562 : -0.0000 ( 105)\n", - "Dihedral 575 591 593 595 : -0.0000 (-10000)\n", - "Dihedral 90 89 91 93 : -0.0000 (-10000)\n", - "Dihedral 550 559 557 558 : -0.0000 (-10000)\n", - "Dihedral 619 621 623 636 : -0.0000 ( 41)\n", - "Dihedral 95 93 99 101 : 5.0579 ( 6)\n", - "Dihedral 399 398 400 402 : -0.0000 (-10000)\n", - "Dihedral 1874 1873 1875 1877 : -0.0000 (-10000)\n", - "Dihedral 1832 1834 1854 1856 : 1.6384 ( 123)\n", - "Dihedral 1395 1397 1399 1405 : -0.0000 ( 94)\n", - "Dihedral 1588 1590 1610 1612 : -0.0000 ( 108)\n", - "Dihedral 595 605 607 609 : -0.0000 (-10000)\n", - "Dihedral 732 730 738 740 : 3.8968 ( 48)\n", - "Dihedral 1765 1777 1775 1776 : -0.0000 (-10000)\n", - "Dihedral 1024 1026 1028 1048 : 4.1376 ( 68)\n", - "Dihedral 1820 1822 1824 1830 : -0.0000 ( 122)\n", - "Dihedral 459 461 463 469 : 0.4618 ( 30)\n", - "Dihedral 1354 1356 1358 1360 : -0.0000 ( 91)\n", - "Dihedral 379 381 383 385 : 0.4618 ( 25)\n", - "Dihedral 531 533 535 546 : -0.0000 ( 35)\n", - "Dihedral 463 469 471 473 : -0.0000 (-10000)\n", - "Dihedral 884 886 888 898 : -0.0000 ( 59)\n", - "Dihedral 147 155 153 154 : -0.0000 (-10000)\n", - "Dihedral 1509 1517 1519 1521 : -0.0000 (-10000)\n", - "Dihedral 1411 1409 1415 1417 : 5.7301 ( 95)\n", - "Dihedral 811 810 812 814 : -0.0000 (-10000)\n", - "Dihedral 1494 1496 1498 1500 : -0.0000 ( 100)\n", - "Dihedral 26 38 40 42 : -0.0000 (-10000)\n", - "Dihedral 783 782 784 786 : -0.0000 (-10000)\n", - "Dihedral 660 662 664 674 : 4.5590 ( 44)\n", - "Dihedral 423 443 445 447 : -0.0000 (-10000)\n", - "Dihedral 1791 1805 1803 1804 : -0.0000 (-10000)\n", - "Dihedral 1098 1118 1120 1122 : -0.0000 (-10000)\n", - "Dihedral 281 283 285 287 : 0.4618 ( 19)\n", - "Dihedral 1303 1311 1313 1315 : -0.0000 (-10000)\n", - "Dihedral 619 621 623 625 : -0.0000 ( 41)\n", - "Dihedral 1580 1586 1588 1590 : -0.0000 (-10000)\n", - "Dihedral 4 22 24 26 : -0.0000 (-10000)\n", - "Dihedral 1938 1940 1942 1957 : 0.4618 ( 129)\n", - "Dihedral 714 716 726 728 : 3.0310 ( 47)\n", - "Dihedral 867 869 884 886 : -0.0000 ( 58)\n", - "Dihedral 1836 1834 1854 1856 : 0.8087 ( 123)\n", - "Dihedral 1346 1348 1354 1356 : 4.0199 ( 90)\n", - "Dihedral 1419 1439 1437 1438 : -0.0000 (-10000)\n", - "Dihedral 1311 1313 1315 1317 : -0.0000 ( 88)\n", - "Dihedral 1494 1496 1498 1505 : -0.0000 ( 100)\n", - "Dihedral 1587 1586 1588 1590 : -0.0000 (-10000)\n", - "Dihedral 447 461 459 460 : -0.0000 (-10000)\n", - "Dihedral 1195 1194 1196 1197 : -0.0000 (-10000)\n", - "Dihedral 515 531 533 535 : -0.0000 (-10000)\n", - "Dihedral 1350 1348 1354 1356 : 4.4608 ( 90)\n", - "Dihedral 637 636 638 640 : -0.0000 (-10000)\n", - "Dihedral 341 340 342 344 : -0.0000 (-10000)\n", - "Dihedral 39 38 40 42 : -0.0000 (-10000)\n", - "Dihedral 1822 1824 1830 1832 : 5.6941 ( 122)\n", - "Dihedral 114 116 118 120 : -0.0000 ( 8)\n", - "Dihedral 899 898 900 902 : -0.0000 (-10000)\n", - "Dihedral 995 1005 1007 1009 : -0.0000 (-10000)\n", - "Dihedral 756 758 760 770 : 0.4618 ( 51)\n", - "Dihedral 1578 1580 1586 1588 : 4.0199 ( 107)\n", - "Dihedral 167 182 180 181 : -0.0000 (-10000)\n", - "Dihedral 66 65 67 69 : -0.0000 (-10000)\n", - "Dihedral 1005 1007 1009 1011 : 0.8087 ( 66)\n", - "Dihedral 1100 1098 1118 1120 : 5.7137 ( 73)\n", - "Dihedral 493 511 513 515 : -0.0000 (-10000)\n", - "Dihedral 118 135 133 134 : -0.0000 (-10000)\n", - "Dihedral 1210 1212 1218 1220 : 3.3461 ( 80)\n", - "Dihedral 515 533 531 532 : -0.0000 (-10000)\n", - "Dihedral 814 831 829 830 : -0.0000 (-10000)\n", - "Dihedral 1505 1507 1509 1511 : -0.0000 ( 101)\n", - "Dihedral 1820 1822 1824 1826 : -0.0000 ( 122)\n", - "Dihedral 1482 1496 1494 1495 : -0.0000 (-10000)\n", - "Dihedral 1576 1578 1580 1586 : -0.0000 ( 107)\n", - "Dihedral 620 619 621 623 : -0.0000 (-10000)\n", - "Dihedral 1278 1277 1279 1281 : -0.0000 (-10000)\n", - "Dihedral 1775 1777 1779 1787 : -0.0000 ( 119)\n", - "Dihedral 713 712 714 716 : -0.0000 (-10000)\n", - "Dihedral 1908 1916 1914 1915 : -0.0000 (-10000)\n", - "Dihedral 898 900 902 909 : -0.0000 ( 60)\n", - "Dihedral 163 165 167 180 : -0.0000 ( 12)\n", - "Dihedral 1281 1290 1288 1289 : -0.0000 (-10000)\n", - "Dihedral 987 985 991 993 : -0.0000 ( 64)\n", - "Dihedral 1331 1330 1332 1334 : -0.0000 (-10000)\n", - "Dihedral 786 805 803 804 : -0.0000 (-10000)\n", - "Dihedral 1459 1461 1463 1478 : -0.0000 ( 98)\n", - "Dihedral 869 886 884 885 : -0.0000 (-10000)\n", - "Dihedral 1509 1519 1517 1518 : -0.0000 (-10000)\n", - "Dihedral 552 550 557 559 : 4.3579 ( 36)\n", - "Dihedral 1163 1165 1175 1177 : 1.8735 ( 77)\n", - "Dihedral 1334 1346 1344 1345 : -0.0000 (-10000)\n", - "Dihedral 1366 1365 1367 1369 : -0.0000 (-10000)\n", - "Dihedral 227 226 228 230 : -0.0000 (-10000)\n", - "Dihedral 419 421 423 425 : -0.0000 ( 28)\n", - "Dihedral 1826 1824 1830 1832 : 5.5058 ( 122)\n", - "Dihedral 1345 1344 1346 1348 : -0.0000 (-10000)\n", - "Dihedral 1194 1196 1197 1199 : -0.0000 ( 79)\n", - "Dihedral 1292 1301 1299 1300 : -0.0000 (-10000)\n", - "Dihedral 865 867 869 871 : -0.0000 ( 58)\n", - "Dihedral 1076 1078 1080 1083 : 1.3859 ( 71)\n", - "Dihedral 1437 1439 1441 1443 : -0.0000 ( 97)\n", - "Dihedral 1465 1463 1478 1480 : 3.4931 ( 98)\n", - "Dihedral 1208 1210 1212 1214 : -0.0000 ( 80)\n", - "Dihedral 1804 1803 1805 1807 : -0.0000 (-10000)\n", - "Dihedral 771 770 772 774 : 0.4618 (-10000)\n", - "Dihedral 1688 1700 1698 1699 : -0.0000 (-10000)\n", - "Dihedral 611 609 619 621 : 5.6711 ( 40)\n", - "Dihedral 1733 1732 1734 1736 : 2.3017 (-10000)\n", - "Dihedral 1199 1197 1196 1205 : -0.0000 ( 79)\n", - "Dihedral 1904 1906 1908 1914 : -0.0000 ( 127)\n", - "Dihedral 1898 1897 1899 1901 : -0.0000 (-10000)\n", - "Dihedral 575 593 591 592 : -0.0000 (-10000)\n", - "Dihedral 1566 1576 1578 1580 : -0.0000 (-10000)\n", - "Dihedral 1438 1437 1439 1441 : -0.0000 (-10000)\n", - "Dihedral 254 269 271 273 : -0.0000 (-10000)\n", - "Dihedral 483 489 491 493 : -0.0000 (-10000)\n", - "Dihedral 1507 1509 1517 1519 : 4.6528 ( 101)\n", - "Dihedral 1755 1754 1756 1758 : -0.0000 (-10000)\n", - "Dihedral 134 133 135 137 : -0.0000 (-10000)\n", - "Dihedral 646 648 650 652 : 5.1920 ( 43)\n", - "Dihedral 1779 1789 1787 1788 : -0.0000 (-10000)\n", - "Dihedral 1419 1437 1439 1441 : -0.0000 (-10000)\n", - "Dihedral 1726 1734 1732 1733 : -0.0000 (-10000)\n", - "Dihedral 888 898 900 902 : -0.0000 (-10000)\n", - "Dihedral 1856 1858 1873 1875 : 0.4618 ( 124)\n", - "Dihedral 1062 1065 1064 1073 : -0.0000 ( 70)\n", - "Dihedral 1019 1021 1024 1026 : 3.3461 ( 67)\n", - "Dihedral 1463 1478 1480 1482 : -0.0000 (-10000)\n", - "Dihedral 1776 1775 1777 1779 : -0.0000 (-10000)\n", - "Dihedral 935 937 957 959 : -0.0000 ( 62)\n", - "Dihedral 1230 1229 1231 1233 : -0.0000 (-10000)\n", - "Dihedral 348 347 349 351 : -0.0000 (-10000)\n", - "Dihedral 1155 1163 1161 1162 : -0.0000 (-10000)\n", - "Dihedral 1288 1290 1292 1299 : -0.0000 ( 86)\n", - "Dihedral 1564 1566 1576 1578 : 0.4618 ( 106)\n", - "Dihedral 595 607 605 606 : -0.0000 (-10000)\n", - "Dihedral 447 459 461 463 : -0.0000 (-10000)\n", - "Dihedral 1209 1208 1210 1212 : -0.0000 (-10000)\n", - "Dihedral 118 133 135 137 : -0.0000 (-10000)\n", - "Dihedral 1049 1048 1050 1052 : -0.0000 (-10000)\n", - "Dihedral 281 283 285 295 : 5.0579 ( 19)\n", - "Dihedral 593 595 605 607 : -0.0000 ( 39)\n", - "Dihedral 58 60 62 65 : -0.0000 ( 4)\n", - "Dihedral 1262 1277 1279 1281 : -0.0000 (-10000)\n", - "Dihedral 1614 1626 1628 1630 : -0.0000 (-10000)\n", - "Dihedral 909 911 913 933 : -0.0000 ( 61)\n", - "Dihedral 1698 1700 1702 1704 : 0.8087 ( 114)\n", - "Dihedral 69 91 89 90 : -0.0000 (-10000)\n", - "Dihedral 38 40 42 44 : -0.0000 ( 3)\n", - "Dihedral 609 621 619 620 : -0.0000 (-10000)\n", - "Dihedral 1383 1385 1395 1397 : 4.8272 ( 93)\n", - "Dihedral 1914 1916 1918 1920 : 0.4618 ( 128)\n", - "Dihedral 184 204 202 203 : -0.0000 (-10000)\n", - "Dihedral 114 116 118 133 : -0.0000 ( 8)\n", - "Dihedral 1122 1134 1132 1133 : -0.0000 (-10000)\n", - "Dihedral 1078 1080 1083 1085 : 0.4618 ( 71)\n", - "Dihedral 1407 1409 1415 1417 : 5.4155 ( 95)\n", - "Dihedral 647 646 648 650 : -0.0000 (-10000)\n", - "Dihedral 646 648 650 660 : 3.0310 ( 43)\n", - "Dihedral 1009 1019 1017 1018 : -0.0000 (-10000)\n", - "Dihedral 1133 1132 1134 1136 : -0.0000 (-10000)\n", - "Dihedral 208 206 226 228 : 5.7301 ( 14)\n", - "Dihedral 203 202 204 206 : -0.0000 (-10000)\n", - "Dihedral 532 531 533 535 : -0.0000 (-10000)\n", - "Dihedral 423 445 443 444 : -0.0000 (-10000)\n", - "Dihedral 1289 1288 1290 1292 : -0.0000 (-10000)\n", - "Dihedral 1011 1009 1017 1019 : 3.7682 ( 66)\n", - "Dihedral 99 101 103 114 : -0.0000 ( 7)\n", - "Dihedral 605 607 609 611 : -0.0000 ( 40)\n", - "Dihedral 803 805 807 810 : 1.1117 ( 54)\n", - "Dihedral 1700 1702 1722 1724 : 5.7530 ( 114)\n", - "Dihedral 1415 1417 1419 1437 : -0.0000 ( 96)\n", - "Dihedral 1381 1383 1385 1387 : -0.0000 ( 93)\n", - "Dihedral 301 299 316 318 : -0.0000 ( 20)\n", - "Dihedral 38 40 42 58 : -0.0000 ( 3)\n", - "Dihedral 69 89 91 93 : -0.0000 (-10000)\n", - "Dihedral 283 285 295 297 : -0.0000 ( 19)\n", - "Dihedral 1724 1726 1732 1734 : 5.1269 ( 115)\n", - "Dihedral 1530 1528 1538 1540 : 2.3017 ( 103)\n", - "Dihedral 662 664 674 676 : -0.0000 ( 44)\n", - "Dihedral 1303 1313 1311 1312 : -0.0000 (-10000)\n", - "Dihedral 546 548 550 557 : 2.4983 ( 36)\n", - "Dihedral 1063 1062 1064 1065 : -0.0000 (-10000)\n", - "Dihedral 1461 1463 1478 1480 : 2.0939 ( 98)\n", - "Dihedral 1258 1260 1262 1264 : -0.0000 ( 84)\n", - "Dihedral 184 202 204 206 : -0.0000 (-10000)\n", - "Dihedral 443 445 447 449 : -0.0000 ( 29)\n", - "Dihedral 481 483 489 491 : 4.9850 ( 32)\n", - "Dihedral 1920 1918 1938 1940 : 4.6528 ( 128)\n", - "Dihedral 1441 1459 1461 1463 : -0.0000 (-10000)\n", - "Dihedral 1354 1356 1358 1365 : -0.0000 ( 91)\n", - "Dihedral 28 26 38 40 : -0.0000 ( 2)\n", - "Dihedral 557 559 561 563 : -0.0000 ( 37)\n", - "Dihedral 1940 1942 1957 1958 : 7.8660 ( 129)\n", - "Dihedral 244 243 245 247 : 1.6384 (-10000)\n", - "Dihedral 804 803 805 807 : 2.4983 (-10000)\n", - "Dihedral 1459 1461 1463 1465 : -0.0000 ( 98)\n", - "Dihedral 1901 1904 1906 1908 : -0.0000 (-10000)\n", - "Dihedral 1313 1315 1330 1332 : -0.0000 ( 88)\n", - "Dihedral 369 368 370 372 : -0.0000 (-10000)\n", - "Dihedral 1756 1758 1761 1763 : 5.1920 ( 117)\n", - "Dihedral 1358 1365 1367 1369 : -0.0000 (-10000)\n", - "Dihedral 640 646 648 650 : -0.0000 (-10000)\n", - "Dihedral 316 318 320 340 : 0.4618 ( 21)\n", - "Dihedral 992 991 993 995 : -0.0000 (-10000)\n", - "Dihedral 181 180 182 184 : -0.0000 (-10000)\n", - "Dihedral 1332 1334 1344 1346 : 1.1117 ( 89)\n", - "Dihedral 816 814 829 831 : 5.1920 ( 55)\n", - "Dihedral 1018 1017 1019 1021 : -0.0000 (-10000)\n", - "Dihedral 1498 1505 1507 1509 : 0.4618 (-10000)\n", - "Dihedral 186 184 202 204 : 2.6848 ( 13)\n", - "Dihedral 202 204 206 226 : -0.0000 ( 14)\n", - "Dihedral 1787 1789 1791 1803 : -0.0000 ( 120)\n", - "Dihedral 1122 1132 1134 1136 : -0.0000 (-10000)\n", - "Dihedral 1738 1736 1754 1756 : -0.0000 ( 116)\n", - "Dihedral 1243 1258 1260 1262 : -0.0000 (-10000)\n", - "Dihedral 774 784 782 783 : -0.0000 (-10000)\n", - "Dihedral 784 786 803 805 : -0.0000 ( 53)\n", - "Dihedral 115 114 116 118 : -0.0000 (-10000)\n", - "Dihedral 1511 1509 1517 1519 : 3.7682 ( 101)\n", - "Dihedral 1549 1562 1564 1566 : -0.0000 (-10000)\n", - "Dihedral 961 981 983 985 : -0.0000 (-10000)\n", - "Dihedral 1582 1580 1586 1588 : 4.1376 ( 107)\n", - "Dihedral 1050 1052 1062 1064 : -0.0000 ( 69)\n", - "Dihedral 760 772 770 771 : -0.0000 (-10000)\n", - "Dihedral 937 957 959 961 : 4.3579 (-10000)\n", - "Dihedral 44 42 58 60 : -0.0000 ( 3)\n", - "Dihedral 135 137 143 145 : 3.1922 ( 9)\n", - "Dihedral 1528 1538 1540 1542 : -0.0000 (-10000)\n", - "Dihedral 1416 1415 1417 1419 : -0.0000 (-10000)\n", - "Dihedral 1281 1288 1290 1292 : -0.0000 (-10000)\n", - "Dihedral 1175 1177 1179 1194 : 3.4931 ( 78)\n", - "Dihedral 1500 1498 1505 1507 : 1.1117 ( 100)\n", - "Dihedral 1549 1564 1562 1563 : -0.0000 (-10000)\n", - "Dihedral 698 700 702 712 : -0.0000 ( 46)\n", - "Dihedral 640 648 646 647 : -0.0000 (-10000)\n", - "Dihedral 475 473 479 481 : 2.6848 ( 31)\n", - "Dihedral 609 619 621 623 : -0.0000 (-10000)\n", - "Dihedral 398 400 402 405 : 0.8087 ( 26)\n", - "Dihedral 383 400 398 399 : -0.0000 (-10000)\n", - "Dihedral 1065 1078 1076 1077 : -0.0000 (-10000)\n", - "Dihedral 1229 1231 1233 1239 : -0.0000 ( 82)\n", - "Dihedral 812 814 829 831 : 5.7137 ( 55)\n", - "Dihedral 751 749 756 758 : -0.0000 ( 50)\n", - "Dihedral 911 913 933 935 : 3.7682 ( 61)\n", - "Dihedral 285 297 295 296 : -0.0000 (-10000)\n", - "Dihedral 1288 1290 1292 1294 : -0.0000 ( 86)\n", - "Dihedral 1385 1397 1395 1396 : -0.0000 (-10000)\n", - "Dihedral 1524 1526 1528 1530 : 1.1117 ( 103)\n", - "Dihedral 449 447 459 461 : 3.8968 ( 29)\n", - "Dihedral 230 245 243 244 : -0.0000 (-10000)\n", - "Dihedral 1371 1369 1381 1383 : 2.8621 ( 92)\n", - "Dihedral 1901 1906 1904 1905 : -0.0000 (-10000)\n", - "Dihedral 1369 1383 1381 1382 : -0.0000 (-10000)\n", - "Dihedral 1161 1163 1165 1175 : 0.4618 ( 77)\n", - "Dihedral 675 674 676 678 : -0.0000 (-10000)\n", - "Dihedral 1686 1688 1698 1700 : 4.6528 ( 113)\n", - "Dihedral 1525 1524 1526 1528 : -0.0000 (-10000)\n", - "Dihedral 374 372 379 381 : -0.0000 ( 24)\n", - "Dihedral 740 742 745 747 : 2.0939 ( 49)\n", - "Dihedral 1482 1494 1496 1498 : -0.0000 (-10000)\n", - "Dihedral 957 959 961 963 : -0.0000 ( 63)\n", - "Dihedral 728 730 738 740 : 4.1376 ( 48)\n", - "Dihedral 1367 1369 1381 1383 : 1.1117 ( 92)\n", - "Dihedral 469 471 473 479 : -0.0000 ( 31)\n", - "Dihedral 1781 1779 1787 1789 : 4.0199 ( 119)\n", - "Dihedral 957 959 961 981 : -0.0000 ( 63)\n", - "Dihedral 1664 1686 1684 1685 : -0.0000 (-10000)\n", - "Dihedral 1586 1588 1590 1592 : -0.0000 ( 108)\n", - "Dihedral 340 342 344 347 : 1.6384 ( 22)\n", - "Dihedral 1791 1803 1805 1807 : -0.0000 (-10000)\n", - "Dihedral 1138 1136 1151 1153 : 1.6384 ( 75)\n", - "Dihedral 351 370 368 369 : -0.0000 (-10000)\n", - "Dihedral 915 913 933 935 : 3.4931 ( 61)\n", - "Dihedral 1334 1344 1346 1348 : -0.0000 (-10000)\n", - "Dihedral 405 407 409 411 : -0.0000 ( 27)\n", - "Dihedral 563 561 571 573 : -0.0000 ( 37)\n", - "Dihedral 716 728 726 727 : -0.0000 (-10000)\n", - "Dihedral 762 760 770 772 : -0.0000 ( 51)\n", - "Dihedral 995 1007 1005 1006 : -0.0000 (-10000)\n", - "Dihedral 1563 1562 1564 1566 : -0.0000 (-10000)\n", - "Dihedral 226 228 230 232 : -0.0000 ( 15)\n", - "Dihedral 180 182 184 186 : -0.0000 ( 13)\n", - "Dihedral 1007 1009 1017 1019 : 2.6848 ( 66)\n", - "Dihedral 909 911 913 915 : -0.0000 ( 61)\n", - "Dihedral 1767 1765 1775 1777 : -0.0000 ( 118)\n", - "Dihedral 459 461 463 465 : -0.0000 ( 30)\n", - "Dihedral 1006 1005 1007 1009 : -0.0000 (-10000)\n", - "Dihedral 1077 1076 1078 1080 : -0.0000 (-10000)\n", - "Dihedral 865 867 869 884 : -0.0000 ( 58)\n", - "Dihedral 250 252 254 256 : -0.0000 ( 17)\n", - "Dihedral 269 271 273 275 : -0.0000 ( 18)\n", - "Dihedral 1779 1787 1789 1791 : -0.0000 (-10000)\n", - "Dihedral 489 491 493 495 : -0.0000 ( 33)\n", - "Dihedral 1684 1686 1688 1690 : 1.8735 ( 113)\n", - "Dihedral 991 993 995 1005 : -0.0000 ( 65)\n", - "Dihedral 1239 1241 1243 1258 : -0.0000 ( 83)\n", - "Dihedral 1918 1940 1938 1939 : -0.0000 (-10000)\n", - "Dihedral 1300 1299 1301 1303 : -0.0000 (-10000)\n", - "Dihedral 1542 1545 1547 1549 : -0.0000 (-10000)\n", - "Dihedral 1294 1292 1299 1301 : 1.8735 ( 86)\n", - "Dihedral 269 271 273 281 : -0.0000 ( 18)\n", - "Dihedral 1195 1194 1196 1205 : -0.0000 (-10000)\n", - "Dihedral 739 738 740 742 : -0.0000 (-10000)\n", - "Dihedral 1562 1564 1566 1576 : -0.0000 ( 106)\n", - "Dihedral 810 812 814 816 : -0.0000 ( 55)\n", - "Dihedral 512 511 513 515 : -0.0000 (-10000)\n", - "Dihedral 62 67 65 66 : -0.0000 (-10000)\n", - "Dihedral 1480 1482 1494 1496 : 5.7627 ( 99)\n", - "Dihedral 1723 1722 1724 1726 : -0.0000 (-10000)\n", - "Dihedral 648 650 660 662 : 1.3859 ( 43)\n", - "Dihedral 1495 1494 1496 1498 : -0.0000 (-10000)\n", - "Dihedral 1382 1381 1383 1385 : -0.0000 (-10000)\n", - "Dihedral 1396 1395 1397 1399 : -0.0000 (-10000)\n", - "Dihedral 1899 1901 1904 1906 : 3.7682 ( 126)\n", - "Dihedral 993 995 1005 1007 : -0.0000 ( 65)\n", - "Dihedral 1526 1528 1538 1540 : 2.0939 ( 103)\n", - "Dihedral 933 935 937 939 : 3.8968 ( 62)\n", - "Dihedral 139 137 143 145 : 3.8968 ( 9)\n", - "Dihedral 1409 1417 1415 1416 : -0.0000 (-10000)\n", - "Dihedral 991 993 995 997 : -0.0000 ( 65)\n", - "Dihedral 89 91 93 99 : -0.0000 ( 6)\n", - "Dihedral 296 295 297 299 : -0.0000 (-10000)\n", - "Dihedral 1118 1120 1122 1132 : 0.8087 ( 74)\n", - "Dihedral 247 250 252 254 : -0.0000 (-10000)\n", - "Dihedral 981 983 985 987 : 4.8272 ( 64)\n", - "Dihedral 1636 1638 1640 1642 : -0.0000 ( 111)\n", - "Dihedral 1761 1763 1765 1767 : 2.0939 ( 118)\n", - "Dihedral 1084 1083 1085 1087 : -0.0000 (-10000)\n", - "Dihedral 1547 1549 1562 1564 : 1.3859 ( 105)\n", - "Dihedral 730 738 740 742 : -0.0000 (-10000)\n", - "Dihedral 206 226 228 230 : -0.0000 (-10000)\n", - "Dihedral 1875 1877 1897 1899 : 0.4618 ( 125)\n", - "Dihedral 531 533 535 537 : -0.0000 ( 35)\n", - "Dihedral 1915 1914 1916 1918 : 0.8087 (-10000)\n", - "Dihedral 1463 1480 1478 1479 : -0.0000 (-10000)\n", - "Dihedral 1025 1024 1026 1028 : -0.0000 (-10000)\n", - "Dihedral 1385 1395 1397 1399 : -0.0000 (-10000)\n", - "Dihedral 852 867 865 866 : -0.0000 (-10000)\n", - "Dihedral 786 803 805 807 : -0.0000 (-10000)\n", - "Dihedral 642 640 646 648 : -0.0000 ( 42)\n", - "Dihedral 22 24 26 38 : -0.0000 ( 2)\n", - "Dihedral 4 24 22 23 : -0.0000 (-10000)\n", - "Dihedral 712 714 716 726 : -0.0000 ( 47)\n", - "Dihedral 1758 1761 1763 1765 : -0.0000 (-10000)\n", - "Dihedral 1803 1805 1807 1820 : -0.0000 ( 121)\n", - "Dihedral 1161 1163 1165 1167 : -0.0000 ( 77)\n", - "Dihedral 137 143 145 147 : -0.0000 (-10000)\n", - "Dihedral 1736 1756 1754 1755 : -0.0000 (-10000)\n", - "Dihedral 103 116 114 115 : -0.0000 (-10000)\n", - "Dihedral 1151 1153 1155 1157 : -0.0000 ( 76)\n", - "Dihedral 1365 1367 1369 1381 : -0.0000 ( 92)\n", - "Dihedral 1684 1686 1688 1698 : 0.8087 ( 113)\n", - "Dihedral 1028 1048 1050 1052 : -0.0000 (-10000)\n", - "Dihedral 1562 1564 1566 1568 : -0.0000 ( 106)\n", - "Dihedral 495 493 511 513 : 4.1376 ( 33)\n", - "Dihedral 678 698 700 702 : -0.0000 (-10000)\n", - "Dihedral 1348 1356 1354 1355 : -0.0000 (-10000)\n", - "Dihedral 1640 1662 1660 1661 : -0.0000 (-10000)\n", - "Dihedral 1505 1507 1509 1517 : -0.0000 ( 101)\n", - "Dihedral 26 40 38 39 : -0.0000 (-10000)\n", - "Dihedral 742 745 747 749 : -0.0000 (-10000)\n", - "Dihedral 1330 1332 1334 1344 : 1.1117 ( 89)\n", - "Dihedral 1566 1578 1576 1577 : -0.0000 (-10000)\n", - "Dihedral 1761 1763 1765 1775 : 0.8087 ( 118)\n", - "Dihedral 638 640 646 648 : -0.0000 ( 42)\n", - "Dihedral 479 481 483 489 : -0.0000 ( 32)\n", - "Dihedral 460 459 461 463 : -0.0000 (-10000)\n", - "Dihedral 1787 1789 1791 1793 : -0.0000 ( 120)\n", - "Dihedral 535 546 548 550 : -0.0000 (-10000)\n", - "Dihedral 1062 1064 1065 1076 : -0.0000 ( 70)\n", - "Dihedral 1789 1791 1803 1805 : 2.6848 ( 120)\n", - "Dihedral 1830 1832 1834 1854 : -0.0000 ( 123)\n", - "Dihedral 831 833 848 850 : -0.0000 ( 56)\n", - "Dihedral 65 67 69 89 : 1.8735 ( 5)\n", - "Dihedral 445 447 459 461 : 3.6337 ( 29)\n", - "Dihedral 650 662 660 661 : -0.0000 (-10000)\n", - "Dihedral 1052 1062 1064 1073 : -0.0000 (-10000)\n", - "Dihedral 1496 1498 1505 1507 : 1.8735 ( 100)\n", - "Dihedral 1807 1822 1820 1821 : -0.0000 (-10000)\n", - "Dihedral 368 370 372 374 : -0.0000 ( 24)\n", - "Dihedral 1405 1407 1409 1411 : -0.0000 ( 95)\n", - "Dihedral 444 443 445 447 : -0.0000 (-10000)\n", - "Dihedral 745 747 749 756 : 1.1117 ( 50)\n", - "Dihedral 147 153 155 157 : -0.0000 (-10000)\n", - "Dihedral 636 638 640 642 : 1.3859 ( 42)\n", - "Dihedral 1632 1630 1636 1638 : 5.2534 ( 110)\n", - "Dihedral 1083 1085 1087 1089 : -0.0000 ( 72)\n", - "Dihedral 1021 1024 1026 1028 : -0.0000 (-10000)\n", - "Dihedral 910 909 911 913 : -0.0000 (-10000)\n", - "Dihedral 661 660 662 664 : -0.0000 (-10000)\n", - "Dihedral 318 320 340 342 : -0.0000 ( 21)\n", - "Dihedral 1630 1636 1638 1640 : -0.0000 (-10000)\n", - "Dihedral 1441 1461 1459 1460 : -0.0000 (-10000)\n", - "Dihedral 379 381 383 398 : 3.0310 ( 25)\n", - "Dihedral 465 463 469 471 : 5.2534 ( 30)\n", - "Dihedral 1793 1791 1803 1805 : 2.0939 ( 120)\n", - "Dihedral 489 491 493 511 : 0.8087 ( 33)\n", - "Dihedral 1809 1807 1820 1822 : 3.6337 ( 121)\n", - "Dihedral 1660 1662 1664 1684 : -0.0000 ( 112)\n", - "Dihedral 1119 1118 1120 1122 : -0.0000 (-10000)\n", - "Dihedral 91 93 99 101 : 5.3111 ( 6)\n", - "Dihedral 1918 1938 1940 1942 : -0.0000 (-10000)\n", - "Dihedral 597 595 605 607 : -0.0000 ( 39)\n", - "Dihedral 1401 1399 1405 1407 : 3.7682 ( 94)\n", - "Dihedral 295 297 299 301 : 0.4618 ( 20)\n", - "Dihedral 1132 1134 1136 1151 : -0.0000 ( 75)\n", - "Dihedral 372 379 381 383 : 0.4618 (-10000)\n", - "Dihedral 1540 1542 1545 1547 : 5.7595 ( 104)\n", - "Dihedral 674 676 678 680 : -0.0000 ( 45)\n", - "Dihedral 1788 1787 1789 1791 : -0.0000 (-10000)\n", - "Dihedral 145 147 153 155 : 4.6528 ( 10)\n", - "Dihedral 252 254 269 271 : 1.1117 ( 17)\n", - "Dihedral 559 561 571 573 : -0.0000 ( 37)\n", - "Dihedral 726 728 730 738 : 0.4618 ( 48)\n", - "Dihedral 1028 1050 1048 1049 : -0.0000 (-10000)\n", - "Dihedral 419 421 423 443 : -0.0000 ( 28)\n", - "Dihedral 888 900 898 899 : -0.0000 (-10000)\n", - "Dihedral 1264 1262 1277 1279 : -0.0000 ( 84)\n", - "Dihedral 1194 1196 1197 1208 : -0.0000 ( 79)\n", - "Dihedral 982 981 983 985 : -0.0000 (-10000)\n", - "Dihedral 1580 1588 1586 1587 : -0.0000 (-10000)\n", - "Dihedral 1478 1480 1482 1494 : -0.0000 ( 99)\n", - "Dihedral 409 419 421 423 : -0.0000 (-10000)\n", - "Dihedral 558 557 559 561 : -0.0000 (-10000)\n", - "Dihedral 275 273 281 283 : 5.4155 ( 18)\n", - "Dihedral 933 935 937 957 : 2.6848 ( 62)\n", - "Dihedral 1640 1660 1662 1664 : -0.0000 (-10000)\n", - "Dihedral 1355 1354 1356 1358 : -0.0000 (-10000)\n", - "Dihedral 726 728 730 732 : 0.4618 ( 48)\n", - "Dihedral 1083 1085 1087 1094 : 0.8087 ( 72)\n", - "Dihedral 890 888 898 900 : -0.0000 ( 59)\n", - "Dihedral 1517 1519 1521 1524 : 0.4618 ( 102)\n", - "Dihedral 1277 1279 1281 1288 : 0.4618 ( 85)\n", - "Dihedral 623 636 638 640 : -0.0000 (-10000)\n", - "Dihedral 165 167 180 182 : 4.4608 ( 12)\n", - "Dihedral 1626 1628 1630 1636 : -0.0000 ( 110)\n", - "Dihedral 317 316 318 320 : -0.0000 (-10000)\n", - "Dihedral 1136 1153 1151 1152 : -0.0000 (-10000)\n", - "Dihedral 0 4 22 24 : -0.0000 ( 1)\n", - "Dihedral 547 546 548 550 : -0.0000 (-10000)\n", - "Dihedral 1196 1197 1208 1210 : -0.0000 ( 79)\n", - "Dihedral 621 623 636 638 : 1.1117 ( 41)\n", - "Dihedral 282 281 283 285 : -0.0000 (-10000)\n", - "Dihedral 1387 1385 1395 1397 : 5.3651 ( 93)\n", - "Dihedral 810 812 814 829 : -0.0000 ( 55)\n", - "Dihedral 1590 1612 1610 1611 : -0.0000 (-10000)\n", - "Dihedral 59 58 60 62 : 0.4618 (-10000)\n", - "Dihedral 698 700 702 704 : -0.0000 ( 46)\n", - "Dihedral 273 283 281 282 : -0.0000 (-10000)\n", - "Dihedral 1243 1260 1258 1259 : -0.0000 (-10000)\n", - "Dihedral 1409 1415 1417 1419 : -0.0000 (-10000)\n", - "Dihedral 322 320 340 342 : -0.0000 ( 21)\n", - "Dihedral 1521 1526 1524 1525 : -0.0000 (-10000)\n", - "Dihedral 1577 1576 1578 1580 : -0.0000 (-10000)\n", - "Dihedral 666 664 674 676 : -0.0000 ( 44)\n", - "Dihedral 1165 1175 1177 1179 : -0.0000 (-10000)\n", - "Dihedral 1087 1094 1096 1098 : -0.0000 (-10000)\n", - "Dihedral 493 513 511 512 : -0.0000 (-10000)\n", - "Dihedral 479 481 483 485 : 1.8735 ( 32)\n", - "Dihedral 1506 1505 1507 1509 : -0.0000 (-10000)\n", - "Dihedral 6 4 22 24 : -0.0000 ( 1)\n", - "Dihedral 577 575 591 593 : -0.0000 ( 38)\n", - "Dihedral 738 740 742 745 : -0.0000 ( 49)\n", - "Dihedral 469 471 473 475 : -0.0000 ( 31)\n", - "Dihedral 1734 1736 1754 1756 : 0.4618 ( 116)\n", - "Dihedral 830 829 831 833 : -0.0000 (-10000)\n", - "Dihedral 1245 1243 1258 1260 : 2.0939 ( 83)\n", - "Dihedral 1484 1482 1494 1496 : 5.4624 ( 99)\n", - "Dihedral 913 933 935 937 : -0.0000 (-10000)\n", - "Dihedral 1197 1208 1210 1212 : -0.0000 (-10000)\n", - "Dihedral 1763 1765 1775 1777 : -0.0000 ( 118)\n", - "Dihedral 511 513 515 517 : -0.0000 ( 34)\n", - "Dihedral 1315 1332 1330 1331 : -0.0000 (-10000)\n", - "Dihedral 848 850 852 865 : -0.0000 ( 57)\n", - "Dihedral 1612 1614 1626 1628 : 4.1376 ( 109)\n", - "Dihedral 42 60 58 59 : -0.0000 (-10000)\n", - "Dihedral 470 469 471 473 : -0.0000 (-10000)\n", - "Dihedral 149 147 153 155 : 5.2534 ( 10)\n", - "Dihedral 93 101 99 100 : -0.0000 (-10000)\n", - "Dihedral 1062 1064 1065 1067 : -0.0000 ( 70)\n", - "Dihedral 1239 1241 1243 1245 : -0.0000 ( 83)\n", - "Dihedral 1702 1724 1722 1723 : -0.0000 (-10000)\n", - "Dihedral 167 180 182 184 : -0.0000 (-10000)\n", - "Dihedral 1299 1301 1303 1305 : 0.4618 ( 87)\n", - "Dihedral 1415 1417 1419 1421 : -0.0000 ( 96)\n", - "Dihedral 1030 1028 1048 1050 : -0.0000 ( 68)\n", - "Dihedral 1690 1688 1698 1700 : 4.7421 ( 113)\n", - "Dihedral 100 99 101 103 : -0.0000 (-10000)\n", - "Dihedral 1344 1346 1348 1350 : -0.0000 ( 90)\n", - "Dihedral 1940 1942 1957 1959 : 6.1227 ( 129)\n", - "Dihedral 1873 1875 1877 1879 : -0.0000 ( 125)\n", - "Dihedral 202 204 206 208 : -0.0000 ( 14)\n", - "Dihedral 1521 1524 1526 1528 : -0.0000 (-10000)\n", - "Dihedral 1344 1346 1348 1354 : -0.0000 ( 90)\n", - "Dihedral 101 103 114 116 : 2.8621 ( 7)\n", - "Dihedral 1381 1383 1385 1395 : -0.0000 ( 93)\n", - "Dihedral 1904 1906 1908 1910 : -0.0000 ( 127)\n", - "Dihedral 1290 1292 1299 1301 : 2.4983 ( 86)\n", - "Dihedral 206 228 226 227 : -0.0000 (-10000)\n", - "Dihedral 22 24 26 28 : -0.0000 ( 2)\n", - "Dihedral 550 557 559 561 : -0.0000 (-10000)\n", - "Dihedral 1758 1763 1761 1762 : -0.0000 (-10000)\n", - "Dihedral 807 810 812 814 : -0.0000 (-10000)\n", - "Dihedral 1775 1777 1779 1781 : -0.0000 ( 119)\n", - "Dihedral 704 702 712 714 : -0.0000 ( 46)\n", - "Dihedral 228 230 243 245 : 2.0939 ( 15)\n", - "Dihedral 1229 1231 1233 1235 : -0.0000 ( 82)\n", - "Dihedral 774 782 784 786 : -0.0000 (-10000)\n", - "Dihedral 251 250 252 254 : -0.0000 (-10000)\n", - "Dihedral 814 829 831 833 : -0.0000 (-10000)\n", - "Dihedral 757 756 758 760 : -0.0000 (-10000)\n", - "Dihedral 866 865 867 869 : -0.0000 (-10000)\n", - "Dihedral 1722 1724 1726 1732 : -0.0000 ( 115)\n", - "Dihedral 1067 1065 1064 1073 : -0.0000 ( 70)\n", - "Dihedral 1096 1098 1118 1120 : 5.7432 ( 73)\n", - "Dihedral 1944 1942 1957 1958 : 7.7192 ( 129)\n", - "Dihedral 372 381 379 380 : -0.0000 (-10000)\n", - "Dihedral 1542 1547 1545 1546 : -0.0000 (-10000)\n", - "Dihedral 571 573 575 577 : -0.0000 ( 38)\n", - "Dihedral 1026 1028 1048 1050 : 1.1117 ( 68)\n", - "Dihedral 491 493 511 513 : 3.1922 ( 33)\n", - "Dihedral 1052 1064 1062 1063 : -0.0000 (-10000)\n", - "Dihedral 1858 1873 1875 1877 : -0.0000 (-10000)\n", - "Dihedral 1231 1233 1239 1241 : 4.5590 ( 82)\n", - "Dihedral 985 991 993 995 : -0.0000 (-10000)\n", - "Dihedral 1124 1122 1132 1134 : -0.0000 ( 74)\n", - "Dihedral 572 571 573 575 : -0.0000 (-10000)\n", - "Dihedral 1551 1549 1562 1564 : 0.8087 ( 105)\n", - "Dihedral 71 69 89 91 : 1.3859 ( 5)\n", - "Dihedral 1626 1628 1630 1632 : -0.0000 ( 110)\n", - "Dihedral 1498 1507 1505 1506 : -0.0000 (-10000)\n", - "Dihedral 1167 1165 1175 1177 : 1.6384 ( 77)\n", - "Dihedral 1360 1358 1365 1367 : 1.1117 ( 91)\n", - "Dihedral 1546 1545 1547 1549 : -0.0000 (-10000)\n", - "Dihedral 1479 1478 1480 1482 : -0.0000 (-10000)\n", - "Dihedral 1283 1281 1288 1290 : -0.0000 ( 85)\n", - "Dihedral 1628 1630 1636 1638 : 5.4155 ( 110)\n", - "Dihedral 1805 1807 1820 1822 : 3.4931 ( 121)\n", - "Dihedral 1348 1354 1356 1358 : -0.0000 (-10000)\n", - "Dihedral 1219 1218 1220 1222 : -0.0000 (-10000)\n", - "Dihedral 461 463 469 471 : 4.2503 ( 30)\n", - "Dihedral 535 548 546 547 : -0.0000 (-10000)\n", - "Dihedral 299 318 316 317 : -0.0000 (-10000)\n", - "Dihedral 848 850 852 854 : -0.0000 ( 57)\n", - "Dihedral 232 230 243 245 : 1.3859 ( 15)\n", - "Dihedral 1212 1218 1220 1222 : -0.0000 (-10000)\n", - "Dihedral 833 850 848 849 : -0.0000 (-10000)\n", - "Dihedral 1214 1212 1218 1220 : 0.8087 ( 80)\n", - "Dihedral 133 135 137 143 : -0.0000 ( 9)\n", - "Dihedral 699 698 700 702 : -0.0000 (-10000)\n", - "Dihedral 204 206 226 228 : 5.5058 ( 14)\n", - "Dihedral 344 349 347 348 : -0.0000 (-10000)\n", - "Dihedral 180 182 184 202 : -0.0000 ( 13)\n", - "Dihedral 273 281 283 285 : -0.0000 (-10000)\n", - "Dihedral 1478 1480 1482 1484 : -0.0000 ( 99)\n", - "Dihedral 490 489 491 493 : -0.0000 (-10000)\n", - "Dihedral 1181 1179 1194 1196 : -0.0000 ( 78)\n", - "Dihedral 1134 1136 1151 1153 : 3.4931 ( 75)\n", - "Dihedral 829 831 833 835 : -0.0000 ( 56)\n", - "Dihedral 1528 1540 1538 1539 : -0.0000 (-10000)\n", - "Dihedral 1399 1405 1407 1409 : -0.0000 (-10000)\n", - "Dihedral 1630 1638 1636 1637 : -0.0000 (-10000)\n", - "Dihedral 297 299 316 318 : 0.4618 ( 20)\n", - "Dihedral 1311 1313 1315 1330 : -0.0000 ( 88)\n", - "Dihedral 316 318 320 322 : -0.0000 ( 21)\n", - "Dihedral 402 405 407 409 : -0.0000 (-10000)\n", - "Dihedral 159 157 163 165 : 2.0939 ( 11)\n", - "Dihedral 1636 1638 1640 1660 : -0.0000 ( 111)\n", - "Dihedral 742 747 745 746 : -0.0000 (-10000)\n", - "Dihedral 1048 1050 1052 1062 : -0.0000 ( 69)\n", - "Dihedral 1222 1229 1231 1233 : -0.0000 (-10000)\n", - "Dihedral 1610 1612 1614 1626 : -0.0000 ( 109)\n", - "Dihedral 788 786 803 805 : -0.0000 ( 53)\n", - "Dihedral 226 228 230 243 : -0.0000 ( 15)\n", - "Dihedral 606 605 607 609 : -0.0000 (-10000)\n", - "Dihedral 727 726 728 730 : -0.0000 (-10000)\n", - "Dihedral 1220 1222 1229 1231 : 4.7421 ( 81)\n", - "Dihedral 674 676 678 698 : -0.0000 ( 45)\n", - "Dihedral 1054 1052 1062 1064 : -0.0000 ( 69)\n", - "Dihedral 1118 1120 1122 1124 : -0.0000 ( 74)\n", - "Dihedral 1685 1684 1686 1688 : -0.0000 (-10000)\n", - "Dihedral 155 157 163 165 : 2.0939 ( 11)\n", - "Dihedral 320 342 340 341 : -0.0000 (-10000)\n", - "Dihedral 1292 1299 1301 1303 : -0.0000 (-10000)\n", - "Dihedral 1702 1722 1724 1726 : -0.0000 (-10000)\n", - "Dihedral 1315 1330 1332 1334 : -0.0000 (-10000)\n", - "Dihedral 770 772 774 776 : -0.0000 ( 52)\n", - "Dihedral 1914 1916 1918 1938 : -0.0000 ( 128)\n", - "Dihedral 886 888 898 900 : -0.0000 ( 59)\n", - "Dihedral 939 937 957 959 : -0.0000 ( 62)\n", - "Dihedral 247 252 250 251 : -0.0000 (-10000)\n", - "Dihedral 93 99 101 103 : -0.0000 (-10000)\n", - "Dihedral 154 153 155 157 : -0.0000 (-10000)\n", - "Dihedral 1356 1358 1365 1367 : -0.0000 ( 91)\n", - "Dihedral 1279 1281 1288 1290 : -0.0000 ( 85)\n", - "Dihedral 402 407 405 406 : -0.0000 (-10000)\n", - "Dihedral 1699 1698 1700 1702 : -0.0000 (-10000)\n", - "Dihedral 1205 1196 1197 1208 : -0.0000 ( 79)\n", - "Dihedral 243 245 247 250 : 1.3859 ( 16)\n", - "Dihedral 60 62 65 67 : -0.0000 ( 4)\n", - "Dihedral 1165 1177 1175 1176 : -0.0000 (-10000)\n", - "Dihedral 299 316 318 320 : -0.0000 (-10000)\n", - "Dihedral 245 247 250 252 : -0.0000 ( 16)\n", - "Dihedral 1664 1684 1686 1688 : -0.0000 (-10000)\n", - "Dihedral 1698 1700 1702 1722 : 0.4618 ( 114)\n", - "Dihedral 1399 1407 1405 1406 : -0.0000 (-10000)\n", - "Dihedral 782 784 786 803 : -0.0000 ( 53)\n", - "Dihedral 407 409 419 421 : 2.8621 ( 27)\n", - "Dihedral 342 344 347 349 : 1.8735 ( 22)\n", - "Dihedral 869 884 886 888 : 0.4618 (-10000)\n", - "Dihedral 1538 1540 1542 1545 : 0.4618 ( 104)\n", - "Dihedral 1726 1732 1734 1736 : -0.0000 (-10000)\n", - "Dihedral 1616 1614 1626 1628 : 5.6711 ( 109)\n", - "Dihedral 1803 1805 1807 1809 : -0.0000 ( 121)\n", - "Dihedral 1590 1610 1612 1614 : -0.0000 (-10000)\n", - "Dihedral 1854 1856 1858 1860 : 3.7682 ( 124)\n", - "Dihedral 1065 1076 1078 1080 : -0.0000 (-10000)\n", - "Dihedral 1063 1062 1064 1073 : -0.0000 (-10000)\n", - "Dihedral 485 483 489 491 : 4.9082 ( 32)\n", - "Dihedral 380 379 381 383 : -0.0000 (-10000)\n", - "Dihedral 406 405 407 409 : -0.0000 (-10000)\n", - "Dihedral 1080 1085 1083 1084 : -0.0000 (-10000)\n", - "Dihedral 1048 1050 1052 1054 : -0.0000 ( 69)\n", - "Dihedral 1754 1756 1758 1761 : -0.0000 ( 117)\n", - "Dihedral 1197 1210 1208 1209 : -0.0000 (-10000)\n", - "Dihedral 1854 1856 1858 1873 : 0.4618 ( 124)\n", - "Dihedral 749 758 756 757 : -0.0000 (-10000)\n", - "Dihedral 1732 1734 1736 1754 : 2.6848 ( 116)\n", - "Dihedral 807 812 810 811 : -0.0000 (-10000)\n", - "Dihedral 730 740 738 739 : -0.0000 (-10000)\n", - "Dihedral 1098 1120 1118 1119 : -0.0000 (-10000)\n", - "Dihedral 420 419 421 423 : -0.0000 (-10000)\n", - "Dihedral 1666 1664 1684 1686 : 3.7682 ( 112)\n", - "Dihedral 1358 1367 1365 1366 : -0.0000 (-10000)\n", - "Dihedral 1021 1026 1024 1025 : -0.0000 (-10000)\n", - "Dihedral 904 902 909 911 : 1.6384 ( 60)\n", - "Dihedral 1627 1626 1628 1630 : -0.0000 (-10000)\n", - "Dihedral 884 886 888 890 : -0.0000 ( 59)\n", - "Dihedral 23 22 24 26 : 0.4618 (-10000)\n", - "Dihedral 344 347 349 351 : -0.0000 (-10000)\n", - "Dihedral 900 902 909 911 : 2.0939 ( 60)\n", - "Dihedral 1087 1096 1094 1095 : -0.0000 (-10000)\n", - "Dihedral 1437 1439 1441 1459 : -0.0000 ( 97)\n", - "Dihedral 1661 1660 1662 1664 : -0.0000 (-10000)\n", - "Dihedral 1877 1899 1897 1898 : -0.0000 (-10000)\n", - "Dihedral 1519 1521 1524 1526 : 3.8968 ( 102)\n", - "Dihedral 835 833 848 850 : 0.4618 ( 56)\n", - "Dihedral 1365 1367 1369 1371 : -0.0000 ( 92)\n", - "Dihedral 1406 1405 1407 1409 : -0.0000 (-10000)\n", - "Dihedral 1151 1153 1155 1161 : -0.0000 ( 76)\n", - "Dihedral 1807 1820 1822 1824 : -0.0000 (-10000)\n", - "Dihedral 533 535 546 548 : 5.7595 ( 35)\n", - "Dihedral 1944 1942 1957 1959 : 6.3541 ( 129)\n", - "Dihedral 1728 1726 1732 1734 : 4.8272 ( 115)\n", - "Dihedral 1704 1702 1722 1724 : 5.7595 ( 114)\n", - "Dihedral 871 869 884 886 : -0.0000 ( 58)\n", - "Dihedral 250 252 254 269 : -0.0000 ( 17)\n", - "Dihedral 1094 1096 1098 1118 : -0.0000 ( 73)\n", - "Dihedral 702 714 712 713 : -0.0000 (-10000)\n", - "Dihedral 1155 1161 1163 1165 : -0.0000 (-10000)\n", - "Dihedral 1094 1096 1098 1100 : -0.0000 ( 73)\n", - "Dihedral 1834 1854 1856 1858 : -0.0000 (-10000)\n", - "Dihedral 678 700 698 699 : -0.0000 (-10000)\n", - "Dihedral 381 383 398 400 : 5.1920 ( 25)\n", - "Dihedral 749 756 758 760 : -0.0000 (-10000)\n", - "Dihedral 1421 1419 1437 1439 : 3.7682 ( 96)\n", - "Dihedral 1524 1526 1528 1538 : 0.8087 ( 103)\n", - "------------------------------------------------------------\n", - "Total BB Topog. Entropy : 728.871\n", - "------------------------------------------------------------\n", - "result_topo_BB = 728.8710286898638\n" - ] - } - ], - "source": [ - "result_topo_BB = EF.compute_topographical_entropy0_BB(\n", - " arg_hostDataContainer = dataContainer, \n", - " arg_selector = selection_string,\n", - " arg_outFile = outfile, \n", - " arg_verbose = verbose\n", - ")\n", - "\n", - "print(f\"result_topo_BB = {result_topo_BB}\")" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "9ad96f36-11c6-4181-a614-43a75bf05b41", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "------------------------------------------------------------\n", - "Topographical entropy of residue side chains \n", - " computed using all the dihedrals with pLogp formalism\n", - "------------------------------------------------------------\n", - "----------Working on resid : 1 (LYS)----------\n", - "Found 5 exclusive dihedrals in residue LYS\n", - "Dihedral 4 6 9 12 : -0.0000\n", - "Dihedral 9 12 15 18 : 0.8087\n", - "Dihedral 9 6 4 22 : 5.7137\n", - "Dihedral 6 9 12 15 : 5.6448\n", - "Dihedral 0 4 6 9 : 5.7301\n", - "Side Chain Topographical Entropy (LYS 1) : 17.8974\n", - "----------Working on resid : 2 (VAL)----------\n", - "Found 4 exclusive dihedrals in residue VAL\n", - "Dihedral 34 28 26 38 : 0.4618\n", - "Dihedral 24 26 28 34 : 0.4618\n", - "Dihedral 24 26 28 30 : -0.0000\n", - "Dihedral 30 28 26 38 : -0.0000\n", - "Side Chain Topographical Entropy (VAL 2) : 0.9237\n", - "----------Working on resid : 3 (PHE)----------\n", - "Found 11 exclusive dihedrals in residue PHE\n", - "Dihedral 47 48 52 56 : -0.0000\n", - "Dihedral 48 47 50 54 : -0.0000\n", - "Dihedral 47 50 54 56 : -0.0000\n", - "Dihedral 47 44 42 58 : -0.0000\n", - "Dihedral 48 52 56 54 : -0.0000\n", - "Dihedral 44 47 50 54 : -0.0000\n", - "Dihedral 40 42 44 47 : -0.0000\n", - "Dihedral 50 47 48 52 : -0.0000\n", - "Dihedral 44 47 50 48 : -0.0000\n", - "Dihedral 44 47 48 52 : -0.0000\n", - "Dihedral 50 54 56 52 : -0.0000\n", - "Side Chain Topographical Entropy (PHE 3) : 0.0000\n", - "----------Working on resid : 4 (GLY)----------\n", - "Found 0 exclusive dihedrals in residue GLY\n", - "Side Chain Topographical Entropy (GLY 4) : 0.0000\n", - "----------Working on resid : 5 (ARG)----------\n", - "Found 8 exclusive dihedrals in residue ARG\n", - "Dihedral 74 71 69 89 : -0.0000\n", - "Dihedral 77 80 82 83 : -0.0000\n", - "Dihedral 77 80 82 86 : -0.0000\n", - "Dihedral 67 69 71 74 : -0.0000\n", - "Dihedral 69 71 74 77 : 0.4618\n", - "Dihedral 71 74 77 80 : 2.4983\n", - "Dihedral 80 83 82 86 : -0.0000\n", - "Dihedral 74 77 80 82 : 2.2159\n", - "Side Chain Topographical Entropy (ARG 5) : 5.1760\n", - "----------Working on resid : 6 (CYS)----------\n", - "Found 3 exclusive dihedrals in residue CYS\n", - "Dihedral 91 93 95 98 : 0.4618\n", - "Dihedral 93 95 98 1913 : -0.0000\n", - "Dihedral 98 95 93 99 : -0.0000\n", - "Side Chain Topographical Entropy (CYS 6) : 0.4618\n", - "----------Working on resid : 7 (GLU)----------\n", - "Found 6 exclusive dihedrals in residue GLU\n", - "Dihedral 105 108 111 113 : 1.8735\n", - "Dihedral 103 105 108 111 : 1.3859\n", - "Dihedral 108 112 111 113 : -0.0000\n", - "Dihedral 108 105 103 114 : 2.0939\n", - "Dihedral 101 103 105 108 : 2.0939\n", - "Dihedral 105 108 111 112 : 1.8735\n", - "Side Chain Topographical Entropy (GLU 7) : 9.3207\n", - "----------Working on resid : 8 (LEU)----------\n", - "Found 4 exclusive dihedrals in residue LEU\n", - "Dihedral 116 118 120 123 : 0.4618\n", - "Dihedral 123 120 118 133 : -0.0000\n", - "Dihedral 118 120 123 125 : 1.3859\n", - "Dihedral 118 120 123 129 : 2.8621\n", - "Side Chain Topographical Entropy (LEU 8) : 4.7098\n", - "----------Working on resid : 9 (ALA)----------\n", - "Found 0 exclusive dihedrals in residue ALA\n", - "Side Chain Topographical Entropy (ALA 9) : 0.0000\n", - "----------Working on resid : 10 (ALA)----------\n", - "Found 0 exclusive dihedrals in residue ALA\n", - "Side Chain Topographical Entropy (ALA 10) : 0.0000\n", - "----------Working on resid : 11 (ALA)----------\n", - "Found 0 exclusive dihedrals in residue ALA\n", - "Side Chain Topographical Entropy (ALA 11) : 0.0000\n", - "----------Working on resid : 12 (MET)----------\n", - "Found 4 exclusive dihedrals in residue MET\n", - "Dihedral 165 167 169 172 : -0.0000\n", - "Dihedral 172 169 167 180 : -0.0000\n", - "Dihedral 169 172 175 176 : -0.0000\n", - "Dihedral 167 169 172 175 : 1.6384\n", - "Side Chain Topographical Entropy (MET 12) : 1.6384\n", - "----------Working on resid : 13 (LYS)----------\n", - "Found 5 exclusive dihedrals in residue LYS\n", - "Dihedral 186 189 192 195 : -0.0000\n", - "Dihedral 184 186 189 192 : 2.0939\n", - "Dihedral 189 186 184 202 : 0.4618\n", - "Dihedral 182 184 186 189 : 0.8087\n", - "Dihedral 189 192 195 198 : 4.4608\n", - "Side Chain Topographical Entropy (LYS 13) : 7.8253\n", - "----------Working on resid : 14 (ARG)----------\n", - "Found 8 exclusive dihedrals in residue ARG\n", - "Dihedral 204 206 208 211 : 0.8087\n", - "Dihedral 211 214 217 219 : 4.1376\n", - "Dihedral 208 211 214 217 : 1.6384\n", - "Dihedral 214 217 219 220 : -0.0000\n", - "Dihedral 217 220 219 223 : -0.0000\n", - "Dihedral 206 208 211 214 : -0.0000\n", - "Dihedral 214 217 219 223 : -0.0000\n", - "Dihedral 211 208 206 226 : 0.4618\n", - "Side Chain Topographical Entropy (ARG 14) : 7.0466\n", - "----------Working on resid : 15 (HIS)----------\n", - "Found 11 exclusive dihedrals in residue HIS\n", - "Dihedral 236 235 237 241 : -0.0000\n", - "Dihedral 237 235 236 239 : -0.0000\n", - "Dihedral 232 235 236 239 : -0.0000\n", - "Dihedral 230 232 235 236 : 3.2388\n", - "Dihedral 235 232 230 243 : -0.0000\n", - "Dihedral 228 230 232 235 : -0.0000\n", - "Dihedral 232 235 237 236 : -0.0000\n", - "Dihedral 235 237 241 239 : -0.0000\n", - "Dihedral 235 236 239 241 : -0.0000\n", - "Dihedral 236 239 241 237 : -0.0000\n", - "Dihedral 232 235 237 241 : -0.0000\n", - "Side Chain Topographical Entropy (HIS 15) : 3.2388\n", - "----------Working on resid : 16 (GLY)----------\n", - "Found 0 exclusive dihedrals in residue GLY\n", - "Side Chain Topographical Entropy (GLY 16) : 0.0000\n", - "----------Working on resid : 17 (LEU)----------\n", - "Found 4 exclusive dihedrals in residue LEU\n", - "Dihedral 259 256 254 269 : -0.0000\n", - "Dihedral 252 254 256 259 : 0.4618\n", - "Dihedral 254 256 259 261 : 0.8087\n", - "Dihedral 254 256 259 265 : 1.2689\n", - "Side Chain Topographical Entropy (LEU 17) : 2.5395\n", - "----------Working on resid : 18 (ASP)----------\n", - "Found 5 exclusive dihedrals in residue ASP\n", - "Dihedral 278 275 273 281 : -0.0000\n", - "Dihedral 275 279 278 280 : -0.0000\n", - "Dihedral 273 275 278 279 : 0.9228\n", - "Dihedral 273 275 278 280 : 5.7432\n", - "Dihedral 271 273 275 278 : -0.0000\n", - "Side Chain Topographical Entropy (ASP 18) : 6.6660\n", - "----------Working on resid : 19 (ASN)----------\n", - "Found 5 exclusive dihedrals in residue ASN\n", - "Dihedral 287 292 290 291 : -0.0000\n", - "Dihedral 290 287 285 295 : 5.2534\n", - "Dihedral 285 287 290 292 : 5.8745\n", - "Dihedral 285 287 290 291 : 6.3249\n", - "Dihedral 283 285 287 290 : 5.3111\n", - "Side Chain Topographical Entropy (ASN 19) : 22.7639\n", - "----------Working on resid : 20 (TYR)----------\n", - "Found 14 exclusive dihedrals in residue TYR\n", - "Dihedral 304 307 311 313 : -0.0000\n", - "Dihedral 307 311 313 309 : -0.0000\n", - "Dihedral 305 304 307 311 : -0.0000\n", - "Dihedral 301 304 305 309 : -0.0000\n", - "Dihedral 305 309 313 314 : -0.0000\n", - "Dihedral 309 311 313 314 : -0.0000\n", - "Dihedral 305 309 313 311 : -0.0000\n", - "Dihedral 304 305 309 313 : -0.0000\n", - "Dihedral 307 304 305 309 : -0.0000\n", - "Dihedral 297 299 301 304 : -0.0000\n", - "Dihedral 301 304 307 305 : -0.0000\n", - "Dihedral 301 304 307 311 : -0.0000\n", - "Dihedral 307 311 313 314 : -0.0000\n", - "Dihedral 304 301 299 316 : -0.0000\n", - "Side Chain Topographical Entropy (TYR 20) : 0.0000\n", - "----------Working on resid : 21 (ARG)----------\n", - "Found 8 exclusive dihedrals in residue ARG\n", - "Dihedral 322 325 328 331 : 2.6848\n", - "Dihedral 318 320 322 325 : -0.0000\n", - "Dihedral 325 322 320 340 : -0.0000\n", - "Dihedral 320 322 325 328 : 1.1117\n", - "Dihedral 328 331 333 334 : -0.0000\n", - "Dihedral 331 334 333 337 : -0.0000\n", - "Dihedral 325 328 331 333 : 4.4608\n", - "Dihedral 328 331 333 337 : -0.0000\n", - "Side Chain Topographical Entropy (ARG 21) : 8.2573\n", - "----------Working on resid : 22 (GLY)----------\n", - "Found 0 exclusive dihedrals in residue GLY\n", - "Side Chain Topographical Entropy (GLY 22) : 0.0000\n", - "----------Working on resid : 23 (TYR)----------\n", - "Found 14 exclusive dihedrals in residue TYR\n", - "Dihedral 359 356 357 361 : -0.0000\n", - "Dihedral 361 363 365 366 : -0.0000\n", - "Dihedral 357 356 359 363 : -0.0000\n", - "Dihedral 353 356 359 363 : -0.0000\n", - "Dihedral 359 363 365 366 : -0.0000\n", - "Dihedral 357 361 365 363 : -0.0000\n", - "Dihedral 357 361 365 366 : -0.0000\n", - "Dihedral 353 356 357 361 : -0.0000\n", - "Dihedral 353 356 359 357 : -0.0000\n", - "Dihedral 359 363 365 361 : -0.0000\n", - "Dihedral 356 353 351 368 : -0.0000\n", - "Dihedral 356 359 363 365 : -0.0000\n", - "Dihedral 349 351 353 356 : -0.0000\n", - "Dihedral 356 357 361 365 : -0.0000\n", - "Side Chain Topographical Entropy (TYR 23) : 0.0000\n", - "----------Working on resid : 24 (SER)----------\n", - "Found 2 exclusive dihedrals in residue SER\n", - "Dihedral 370 372 374 377 : -0.0000\n", - "Dihedral 377 374 372 379 : -0.0000\n", - "Side Chain Topographical Entropy (SER 24) : 0.0000\n", - "----------Working on resid : 25 (LEU)----------\n", - "Found 4 exclusive dihedrals in residue LEU\n", - "Dihedral 383 385 388 390 : -0.0000\n", - "Dihedral 381 383 385 388 : 0.4618\n", - "Dihedral 388 385 383 398 : -0.0000\n", - "Dihedral 383 385 388 394 : -0.0000\n", - "Side Chain Topographical Entropy (LEU 25) : 0.4618\n", - "----------Working on resid : 26 (GLY)----------\n", - "Found 0 exclusive dihedrals in residue GLY\n", - "Side Chain Topographical Entropy (GLY 26) : 0.0000\n", - "----------Working on resid : 27 (ASN)----------\n", - "Found 5 exclusive dihedrals in residue ASN\n", - "Dihedral 409 411 414 416 : 4.4608\n", - "Dihedral 407 409 411 414 : -0.0000\n", - "Dihedral 411 416 414 415 : -0.0000\n", - "Dihedral 414 411 409 419 : -0.0000\n", - "Dihedral 409 411 414 415 : -0.0000\n", - "Side Chain Topographical Entropy (ASN 27) : 4.4608\n", - "----------Working on resid : 28 (TRP)----------\n", - "Found 24 exclusive dihedrals in residue TRP\n", - "Dihedral 431 434 437 441 : -0.0000\n", - "Dihedral 429 432 434 437 : -0.0000\n", - "Dihedral 435 431 434 437 : -0.0000\n", - "Dihedral 435 439 441 437 : -0.0000\n", - "Dihedral 431 435 439 441 : -0.0000\n", - "Dihedral 429 428 431 435 : -0.0000\n", - "Dihedral 425 428 431 429 : -0.0000\n", - "Dihedral 434 431 435 439 : -0.0000\n", - "Dihedral 428 431 434 432 : -0.0000\n", - "Dihedral 432 434 437 441 : -0.0000\n", - "Dihedral 428 431 434 437 : -0.0000\n", - "Dihedral 431 428 429 432 : -0.0000\n", - "Dihedral 425 428 429 432 : -0.0000\n", - "Dihedral 428 429 432 434 : -0.0000\n", - "Dihedral 429 432 434 431 : -0.0000\n", - "Dihedral 428 425 423 443 : -0.0000\n", - "Dihedral 428 431 435 439 : -0.0000\n", - "Dihedral 425 428 431 435 : -0.0000\n", - "Dihedral 425 428 431 434 : -0.0000\n", - "Dihedral 429 428 431 434 : -0.0000\n", - "Dihedral 434 437 441 439 : -0.0000\n", - "Dihedral 432 434 431 435 : -0.0000\n", - "Dihedral 423 425 428 429 : 5.7432\n", - "Dihedral 421 423 425 428 : -0.0000\n", - "Side Chain Topographical Entropy (TRP 28) : 5.7432\n", - "----------Working on resid : 29 (VAL)----------\n", - "Found 4 exclusive dihedrals in residue VAL\n", - "Dihedral 445 447 449 455 : -0.0000\n", - "Dihedral 445 447 449 451 : -0.0000\n", - "Dihedral 451 449 447 459 : -0.0000\n", - "Dihedral 455 449 447 459 : -0.0000\n", - "Side Chain Topographical Entropy (VAL 29) : 0.0000\n", - "----------Working on resid : 30 (CYS)----------\n", - "Found 3 exclusive dihedrals in residue CYS\n", - "Dihedral 463 465 468 1731 : -0.0000\n", - "Dihedral 468 465 463 469 : -0.0000\n", - "Dihedral 461 463 465 468 : -0.0000\n", - "Side Chain Topographical Entropy (CYS 30) : 0.0000\n", - "----------Working on resid : 31 (ALA)----------\n", - "Found 0 exclusive dihedrals in residue ALA\n", - "Side Chain Topographical Entropy (ALA 31) : 0.0000\n", - "----------Working on resid : 32 (ALA)----------\n", - "Found 0 exclusive dihedrals in residue ALA\n", - "Side Chain Topographical Entropy (ALA 32) : 0.0000\n", - "----------Working on resid : 33 (LYS)----------\n", - "Found 5 exclusive dihedrals in residue LYS\n", - "Dihedral 495 498 501 504 : 1.1117\n", - "Dihedral 491 493 495 498 : -0.0000\n", - "Dihedral 493 495 498 501 : -0.0000\n", - "Dihedral 498 501 504 507 : 0.4618\n", - "Dihedral 498 495 493 511 : -0.0000\n", - "Side Chain Topographical Entropy (LYS 33) : 1.5735\n", - "----------Working on resid : 34 (PHE)----------\n", - "Found 11 exclusive dihedrals in residue PHE\n", - "Dihedral 523 527 529 525 : -0.0000\n", - "Dihedral 523 520 521 525 : -0.0000\n", - "Dihedral 517 520 521 525 : -0.0000\n", - "Dihedral 517 520 523 521 : -0.0000\n", - "Dihedral 521 525 529 527 : -0.0000\n", - "Dihedral 520 517 515 531 : -0.0000\n", - "Dihedral 520 523 527 529 : -0.0000\n", - "Dihedral 521 520 523 527 : -0.0000\n", - "Dihedral 520 521 525 529 : -0.0000\n", - "Dihedral 517 520 523 527 : -0.0000\n", - "Dihedral 513 515 517 520 : -0.0000\n", - "Side Chain Topographical Entropy (PHE 34) : 0.0000\n", - "----------Working on resid : 35 (GLU)----------\n", - "Found 6 exclusive dihedrals in residue GLU\n", - "Dihedral 537 540 543 545 : 5.7595\n", - "Dihedral 537 540 543 544 : 7.3019\n", - "Dihedral 540 537 535 546 : -0.0000\n", - "Dihedral 533 535 537 540 : -0.0000\n", - "Dihedral 535 537 540 543 : -0.0000\n", - "Dihedral 540 544 543 545 : -0.0000\n", - "Side Chain Topographical Entropy (GLU 35) : 13.0614\n", - "----------Working on resid : 36 (SER)----------\n", - "Found 2 exclusive dihedrals in residue SER\n", - "Dihedral 555 552 550 557 : -0.0000\n", - "Dihedral 548 550 552 555 : -0.0000\n", - "Side Chain Topographical Entropy (SER 36) : 0.0000\n", - "----------Working on resid : 37 (ASN)----------\n", - "Found 5 exclusive dihedrals in residue ASN\n", - "Dihedral 563 568 566 567 : -0.0000\n", - "Dihedral 559 561 563 566 : 5.3111\n", - "Dihedral 561 563 566 567 : 3.3461\n", - "Dihedral 561 563 566 568 : 6.0514\n", - "Dihedral 566 563 561 571 : 3.8968\n", - "Side Chain Topographical Entropy (ASN 37) : 18.6054\n", - "----------Working on resid : 38 (PHE)----------\n", - "Found 11 exclusive dihedrals in residue PHE\n", - "Dihedral 583 587 589 585 : -0.0000\n", - "Dihedral 580 581 585 589 : -0.0000\n", - "Dihedral 573 575 577 580 : -0.0000\n", - "Dihedral 581 585 589 587 : -0.0000\n", - "Dihedral 577 580 581 585 : -0.0000\n", - "Dihedral 580 577 575 591 : -0.0000\n", - "Dihedral 580 583 587 589 : -0.0000\n", - "Dihedral 581 580 583 587 : -0.0000\n", - "Dihedral 577 580 583 581 : -0.0000\n", - "Dihedral 577 580 583 587 : -0.0000\n", - "Dihedral 583 580 581 585 : -0.0000\n", - "Side Chain Topographical Entropy (PHE 38) : 0.0000\n", - "----------Working on resid : 39 (ASN)----------\n", - "Found 5 exclusive dihedrals in residue ASN\n", - "Dihedral 595 597 600 602 : 4.4608\n", - "Dihedral 600 597 595 605 : 1.3859\n", - "Dihedral 593 595 597 600 : 1.1117\n", - "Dihedral 597 602 600 601 : -0.0000\n", - "Dihedral 595 597 600 601 : 4.7421\n", - "Side Chain Topographical Entropy (ASN 39) : 11.7005\n", - "----------Working on resid : 40 (THR)----------\n", - "Found 4 exclusive dihedrals in residue THR\n", - "Dihedral 613 611 609 619 : -0.0000\n", - "Dihedral 607 609 611 615 : -0.0000\n", - "Dihedral 615 611 609 619 : -0.0000\n", - "Dihedral 607 609 611 613 : -0.0000\n", - "Side Chain Topographical Entropy (THR 40) : 0.0000\n", - "----------Working on resid : 41 (GLN)----------\n", - "Found 6 exclusive dihedrals in residue GLN\n", - "Dihedral 623 625 628 631 : -0.0000\n", - "Dihedral 625 628 631 633 : 8.0310\n", - "Dihedral 625 628 631 632 : 8.0868\n", - "Dihedral 621 623 625 628 : -0.0000\n", - "Dihedral 628 625 623 636 : -0.0000\n", - "Dihedral 628 633 631 632 : -0.0000\n", - "Side Chain Topographical Entropy (GLN 41) : 16.1178\n", - "----------Working on resid : 42 (ALA)----------\n", - "Found 0 exclusive dihedrals in residue ALA\n", - "Side Chain Topographical Entropy (ALA 42) : 0.0000\n", - "----------Working on resid : 43 (THR)----------\n", - "Found 4 exclusive dihedrals in residue THR\n", - "Dihedral 648 650 652 654 : -0.0000\n", - "Dihedral 654 652 650 660 : -0.0000\n", - "Dihedral 656 652 650 660 : -0.0000\n", - "Dihedral 648 650 652 656 : -0.0000\n", - "Side Chain Topographical Entropy (THR 43) : 0.0000\n", - "----------Working on resid : 44 (ASN)----------\n", - "Found 5 exclusive dihedrals in residue ASN\n", - "Dihedral 664 666 669 671 : 2.5498\n", - "Dihedral 662 664 666 669 : -0.0000\n", - "Dihedral 669 666 664 674 : 0.8087\n", - "Dihedral 666 671 669 670 : -0.0000\n", - "Dihedral 664 666 669 670 : 2.4875\n", - "Side Chain Topographical Entropy (ASN 44) : 5.8460\n", - "----------Working on resid : 45 (ARG)----------\n", - "Found 8 exclusive dihedrals in residue ARG\n", - "Dihedral 686 689 691 692 : -0.0000\n", - "Dihedral 683 686 689 691 : 4.6928\n", - "Dihedral 686 689 691 695 : 0.4618\n", - "Dihedral 680 683 686 689 : 4.9850\n", - "Dihedral 678 680 683 686 : 5.6941\n", - "Dihedral 689 692 691 695 : -0.0000\n", - "Dihedral 683 680 678 698 : -0.0000\n", - "Dihedral 676 678 680 683 : -0.0000\n", - "Side Chain Topographical Entropy (ARG 45) : 15.8337\n", - "----------Working on resid : 46 (ASN)----------\n", - "Found 5 exclusive dihedrals in residue ASN\n", - "Dihedral 702 704 707 709 : 5.5821\n", - "Dihedral 700 702 704 707 : 2.3017\n", - "Dihedral 707 704 702 712 : 3.0310\n", - "Dihedral 704 709 707 708 : -0.0000\n", - "Dihedral 702 704 707 708 : 6.2730\n", - "Side Chain Topographical Entropy (ASN 46) : 17.1878\n", - "----------Working on resid : 47 (THR)----------\n", - "Found 4 exclusive dihedrals in residue THR\n", - "Dihedral 720 718 716 726 : -0.0000\n", - "Dihedral 714 716 718 720 : -0.0000\n", - "Dihedral 722 718 716 726 : -0.0000\n", - "Dihedral 714 716 718 722 : -0.0000\n", - "Side Chain Topographical Entropy (THR 47) : 0.0000\n", - "----------Working on resid : 48 (ASP)----------\n", - "Found 5 exclusive dihedrals in residue ASP\n", - "Dihedral 730 732 735 737 : 3.6337\n", - "Dihedral 735 732 730 738 : 5.3111\n", - "Dihedral 732 736 735 737 : -0.0000\n", - "Dihedral 728 730 732 735 : 5.4624\n", - "Dihedral 730 732 735 736 : 4.9850\n", - "Side Chain Topographical Entropy (ASP 48) : 19.3922\n", - "----------Working on resid : 49 (GLY)----------\n", - "Found 0 exclusive dihedrals in residue GLY\n", - "Side Chain Topographical Entropy (GLY 49) : 0.0000\n", - "----------Working on resid : 50 (SER)----------\n", - "Found 2 exclusive dihedrals in residue SER\n", - "Dihedral 747 749 751 754 : -0.0000\n", - "Dihedral 754 751 749 756 : -0.0000\n", - "Side Chain Topographical Entropy (SER 50) : 0.0000\n", - "----------Working on resid : 51 (THR)----------\n", - "Found 4 exclusive dihedrals in residue THR\n", - "Dihedral 764 762 760 770 : 0.4618\n", - "Dihedral 758 760 762 766 : -0.0000\n", - "Dihedral 766 762 760 770 : 0.4618\n", - "Dihedral 758 760 762 764 : -0.0000\n", - "Side Chain Topographical Entropy (THR 51) : 0.9237\n", - "----------Working on resid : 52 (ASP)----------\n", - "Found 5 exclusive dihedrals in residue ASP\n", - "Dihedral 772 774 776 779 : -0.0000\n", - "Dihedral 776 780 779 781 : -0.0000\n", - "Dihedral 779 776 774 782 : -0.0000\n", - "Dihedral 774 776 779 780 : 5.7301\n", - "Dihedral 774 776 779 781 : -0.0000\n", - "Side Chain Topographical Entropy (ASP 52) : 5.7301\n", - "----------Working on resid : 53 (TYR)----------\n", - "Found 14 exclusive dihedrals in residue TYR\n", - "Dihedral 788 791 794 798 : -0.0000\n", - "Dihedral 791 788 786 803 : -0.0000\n", - "Dihedral 792 796 800 798 : -0.0000\n", - "Dihedral 792 791 794 798 : -0.0000\n", - "Dihedral 796 798 800 801 : -0.0000\n", - "Dihedral 791 794 798 800 : -0.0000\n", - "Dihedral 794 791 792 796 : -0.0000\n", - "Dihedral 788 791 792 796 : -0.0000\n", - "Dihedral 788 791 794 792 : -0.0000\n", - "Dihedral 794 798 800 796 : -0.0000\n", - "Dihedral 784 786 788 791 : -0.0000\n", - "Dihedral 791 792 796 800 : -0.0000\n", - "Dihedral 792 796 800 801 : -0.0000\n", - "Dihedral 794 798 800 801 : -0.0000\n", - "Side Chain Topographical Entropy (TYR 53) : 0.0000\n", - "----------Working on resid : 54 (GLY)----------\n", - "Found 0 exclusive dihedrals in residue GLY\n", - "Side Chain Topographical Entropy (GLY 54) : 0.0000\n", - "----------Working on resid : 55 (ILE)----------\n", - "Found 6 exclusive dihedrals in residue ILE\n", - "Dihedral 821 816 814 829 : -0.0000\n", - "Dihedral 821 816 818 825 : 2.4983\n", - "Dihedral 812 814 816 821 : -0.0000\n", - "Dihedral 814 816 818 825 : 2.6848\n", - "Dihedral 818 816 814 829 : -0.0000\n", - "Dihedral 812 814 816 818 : -0.0000\n", - "Side Chain Topographical Entropy (ILE 55) : 5.1830\n", - "----------Working on resid : 56 (LEU)----------\n", - "Found 4 exclusive dihedrals in residue LEU\n", - "Dihedral 838 835 833 848 : -0.0000\n", - "Dihedral 833 835 838 840 : -0.0000\n", - "Dihedral 831 833 835 838 : -0.0000\n", - "Dihedral 833 835 838 844 : -0.0000\n", - "Side Chain Topographical Entropy (LEU 56) : 0.0000\n", - "----------Working on resid : 57 (GLN)----------\n", - "Found 6 exclusive dihedrals in residue GLN\n", - "Dihedral 854 857 860 862 : 2.8621\n", - "Dihedral 854 857 860 861 : -0.0000\n", - "Dihedral 850 852 854 857 : -0.0000\n", - "Dihedral 852 854 857 860 : -0.0000\n", - "Dihedral 857 862 860 861 : -0.0000\n", - "Dihedral 857 854 852 865 : -0.0000\n", - "Side Chain Topographical Entropy (GLN 57) : 2.8621\n", - "----------Working on resid : 58 (ILE)----------\n", - "Found 6 exclusive dihedrals in residue ILE\n", - "Dihedral 867 869 871 876 : -0.0000\n", - "Dihedral 876 871 873 880 : -0.0000\n", - "Dihedral 869 871 873 880 : -0.0000\n", - "Dihedral 876 871 869 884 : 0.8087\n", - "Dihedral 867 869 871 873 : 0.8087\n", - "Dihedral 873 871 869 884 : 0.8087\n", - "Side Chain Topographical Entropy (ILE 58) : 2.4262\n", - "----------Working on resid : 59 (ASN)----------\n", - "Found 5 exclusive dihedrals in residue ASN\n", - "Dihedral 890 895 893 894 : -0.0000\n", - "Dihedral 886 888 890 893 : 0.4618\n", - "Dihedral 888 890 893 895 : 4.9082\n", - "Dihedral 893 890 888 898 : -0.0000\n", - "Dihedral 888 890 893 894 : -0.0000\n", - "Side Chain Topographical Entropy (ASN 59) : 5.3700\n", - "----------Working on resid : 60 (SER)----------\n", - "Found 2 exclusive dihedrals in residue SER\n", - "Dihedral 907 904 902 909 : -0.0000\n", - "Dihedral 900 902 904 907 : -0.0000\n", - "Side Chain Topographical Entropy (SER 60) : 0.0000\n", - "----------Working on resid : 61 (ARG)----------\n", - "Found 8 exclusive dihedrals in residue ARG\n", - "Dihedral 913 915 918 921 : -0.0000\n", - "Dihedral 918 915 913 933 : 3.7682\n", - "Dihedral 921 924 926 927 : 0.4618\n", - "Dihedral 921 924 926 930 : -0.0000\n", - "Dihedral 918 921 924 926 : 0.4618\n", - "Dihedral 924 927 926 930 : -0.0000\n", - "Dihedral 915 918 921 924 : 5.9285\n", - "Dihedral 911 913 915 918 : 4.3579\n", - "Side Chain Topographical Entropy (ARG 61) : 14.9783\n", - "----------Working on resid : 62 (TRP)----------\n", - "Found 24 exclusive dihedrals in residue TRP\n", - "Dihedral 949 953 955 951 : -0.0000\n", - "Dihedral 942 943 946 948 : -0.0000\n", - "Dihedral 939 942 945 943 : -0.0000\n", - "Dihedral 939 942 943 946 : -0.0000\n", - "Dihedral 942 945 948 951 : -0.0000\n", - "Dihedral 945 942 943 946 : -0.0000\n", - "Dihedral 949 945 948 951 : -0.0000\n", - "Dihedral 942 945 948 946 : -0.0000\n", - "Dihedral 939 942 945 948 : -0.0000\n", - "Dihedral 943 946 948 945 : -0.0000\n", - "Dihedral 948 945 949 953 : -0.0000\n", - "Dihedral 943 942 945 949 : -0.0000\n", - "Dihedral 943 946 948 951 : -0.0000\n", - "Dihedral 943 942 945 948 : -0.0000\n", - "Dihedral 939 942 945 949 : -0.0000\n", - "Dihedral 946 948 945 949 : -0.0000\n", - "Dihedral 942 939 937 957 : -0.0000\n", - "Dihedral 942 945 949 953 : -0.0000\n", - "Dihedral 948 951 955 953 : -0.0000\n", - "Dihedral 945 949 953 955 : -0.0000\n", - "Dihedral 946 948 951 955 : -0.0000\n", - "Dihedral 937 939 942 943 : 5.7432\n", - "Dihedral 945 948 951 955 : -0.0000\n", - "Dihedral 935 937 939 942 : 0.4618\n", - "Side Chain Topographical Entropy (TRP 62) : 6.2050\n", - "----------Working on resid : 63 (TRP)----------\n", - "Found 24 exclusive dihedrals in residue TRP\n", - "Dihedral 973 969 972 975 : -0.0000\n", - "Dihedral 972 975 979 977 : -0.0000\n", - "Dihedral 966 967 970 972 : -0.0000\n", - "Dihedral 967 966 969 973 : -0.0000\n", - "Dihedral 961 963 966 967 : 3.7682\n", - "Dihedral 969 973 977 979 : -0.0000\n", - "Dihedral 972 969 973 977 : -0.0000\n", - "Dihedral 973 977 979 975 : -0.0000\n", - "Dihedral 963 966 969 967 : -0.0000\n", - "Dihedral 963 966 969 973 : -0.0000\n", - "Dihedral 966 969 973 977 : -0.0000\n", - "Dihedral 969 972 975 979 : -0.0000\n", - "Dihedral 959 961 963 966 : -0.0000\n", - "Dihedral 970 972 969 973 : -0.0000\n", - "Dihedral 966 963 961 981 : -0.0000\n", - "Dihedral 966 969 972 975 : -0.0000\n", - "Dihedral 967 970 972 975 : -0.0000\n", - "Dihedral 969 966 967 970 : -0.0000\n", - "Dihedral 967 970 972 969 : -0.0000\n", - "Dihedral 963 966 969 972 : -0.0000\n", - "Dihedral 970 972 975 979 : -0.0000\n", - "Dihedral 966 969 972 970 : -0.0000\n", - "Dihedral 963 966 967 970 : -0.0000\n", - "Dihedral 967 966 969 972 : -0.0000\n", - "Side Chain Topographical Entropy (TRP 63) : 3.7682\n", - "----------Working on resid : 64 (CYS)----------\n", - "Found 3 exclusive dihedrals in residue CYS\n", - "Dihedral 983 985 987 990 : -0.0000\n", - "Dihedral 985 987 990 1217 : 5.7627\n", - "Dihedral 990 987 985 991 : -0.0000\n", - "Side Chain Topographical Entropy (CYS 64) : 5.7627\n", - "----------Working on resid : 65 (ASN)----------\n", - "Found 5 exclusive dihedrals in residue ASN\n", - "Dihedral 995 997 1000 1002 : 1.1117\n", - "Dihedral 997 1002 1000 1001 : -0.0000\n", - "Dihedral 995 997 1000 1001 : 1.1117\n", - "Dihedral 993 995 997 1000 : 1.6384\n", - "Dihedral 1000 997 995 1005 : 3.0310\n", - "Side Chain Topographical Entropy (ASN 65) : 6.8929\n", - "----------Working on resid : 66 (ASP)----------\n", - "Found 5 exclusive dihedrals in residue ASP\n", - "Dihedral 1009 1011 1014 1015 : 0.9228\n", - "Dihedral 1014 1011 1009 1017 : 0.8087\n", - "Dihedral 1007 1009 1011 1014 : 0.8087\n", - "Dihedral 1011 1015 1014 1016 : -0.0000\n", - "Dihedral 1009 1011 1014 1016 : 5.2534\n", - "Side Chain Topographical Entropy (ASP 66) : 7.7937\n", - "----------Working on resid : 67 (GLY)----------\n", - "Found 0 exclusive dihedrals in residue GLY\n", - "Side Chain Topographical Entropy (GLY 67) : 0.0000\n", - "----------Working on resid : 68 (ARG)----------\n", - "Found 8 exclusive dihedrals in residue ARG\n", - "Dihedral 1036 1039 1041 1042 : 0.8087\n", - "Dihedral 1039 1042 1041 1045 : -0.0000\n", - "Dihedral 1033 1036 1039 1041 : 6.0621\n", - "Dihedral 1033 1030 1028 1048 : -0.0000\n", - "Dihedral 1028 1030 1033 1036 : 4.4608\n", - "Dihedral 1036 1039 1041 1045 : -0.0000\n", - "Dihedral 1030 1033 1036 1039 : 1.1117\n", - "Dihedral 1026 1028 1030 1033 : -0.0000\n", - "Side Chain Topographical Entropy (ARG 68) : 12.4433\n", - "----------Working on resid : 69 (THR)----------\n", - "Found 4 exclusive dihedrals in residue THR\n", - "Dihedral 1056 1054 1052 1062 : -0.0000\n", - "Dihedral 1050 1052 1054 1056 : -0.0000\n", - "Dihedral 1058 1054 1052 1062 : -0.0000\n", - "Dihedral 1050 1052 1054 1058 : -0.0000\n", - "Side Chain Topographical Entropy (THR 69) : 0.0000\n", - "----------Working on resid : 70 (PRO)----------\n", - "Found 6 exclusive dihedrals in residue PRO\n", - "Dihedral 1070 1067 1065 1076 : -0.0000\n", - "Dihedral 1065 1064 1073 1070 : -0.0000\n", - "Dihedral 1064 1073 1070 1067 : -0.0000\n", - "Dihedral 1065 1067 1070 1073 : 5.7301\n", - "Dihedral 1062 1064 1073 1070 : -0.0000\n", - "Dihedral 1064 1065 1067 1070 : -0.0000\n", - "Side Chain Topographical Entropy (PRO 70) : 5.7301\n", - "----------Working on resid : 71 (GLY)----------\n", - "Found 0 exclusive dihedrals in residue GLY\n", - "Side Chain Topographical Entropy (GLY 71) : 0.0000\n", - "----------Working on resid : 72 (SER)----------\n", - "Found 2 exclusive dihedrals in residue SER\n", - "Dihedral 1092 1089 1087 1094 : 2.6848\n", - "Dihedral 1085 1087 1089 1092 : 2.6848\n", - "Side Chain Topographical Entropy (SER 72) : 5.3695\n", - "----------Working on resid : 73 (ARG)----------\n", - "Found 8 exclusive dihedrals in residue ARG\n", - "Dihedral 1106 1109 1111 1112 : -0.0000\n", - "Dihedral 1096 1098 1100 1103 : 1.1117\n", - "Dihedral 1103 1106 1109 1111 : 5.7432\n", - "Dihedral 1106 1109 1111 1115 : -0.0000\n", - "Dihedral 1100 1103 1106 1109 : 2.8621\n", - "Dihedral 1109 1112 1111 1115 : -0.0000\n", - "Dihedral 1103 1100 1098 1118 : 1.1117\n", - "Dihedral 1098 1100 1103 1106 : 4.5590\n", - "Side Chain Topographical Entropy (ARG 73) : 15.3877\n", - "----------Working on resid : 74 (ASN)----------\n", - "Found 5 exclusive dihedrals in residue ASN\n", - "Dihedral 1122 1124 1127 1128 : -0.0000\n", - "Dihedral 1120 1122 1124 1127 : 1.3859\n", - "Dihedral 1127 1124 1122 1132 : -0.0000\n", - "Dihedral 1122 1124 1127 1129 : 5.1269\n", - "Dihedral 1124 1129 1127 1128 : -0.0000\n", - "Side Chain Topographical Entropy (ASN 74) : 6.5128\n", - "----------Working on resid : 75 (LEU)----------\n", - "Found 4 exclusive dihedrals in residue LEU\n", - "Dihedral 1136 1138 1141 1143 : -0.0000\n", - "Dihedral 1141 1138 1136 1151 : -0.0000\n", - "Dihedral 1136 1138 1141 1147 : -0.0000\n", - "Dihedral 1134 1136 1138 1141 : -0.0000\n", - "Side Chain Topographical Entropy (LEU 75) : 0.0000\n", - "----------Working on resid : 76 (CYS)----------\n", - "Found 3 exclusive dihedrals in residue CYS\n", - "Dihedral 1155 1157 1160 1404 : -0.0000\n", - "Dihedral 1160 1157 1155 1161 : -0.0000\n", - "Dihedral 1153 1155 1157 1160 : -0.0000\n", - "Side Chain Topographical Entropy (CYS 76) : 0.0000\n", - "----------Working on resid : 77 (ASN)----------\n", - "Found 5 exclusive dihedrals in residue ASN\n", - "Dihedral 1170 1167 1165 1175 : 1.8735\n", - "Dihedral 1165 1167 1170 1171 : 4.9954\n", - "Dihedral 1163 1165 1167 1170 : 4.9850\n", - "Dihedral 1165 1167 1170 1172 : 4.9954\n", - "Dihedral 1167 1172 1170 1171 : -0.0000\n", - "Side Chain Topographical Entropy (ASN 77) : 16.8493\n", - "----------Working on resid : 78 (ILE)----------\n", - "Found 6 exclusive dihedrals in residue ILE\n", - "Dihedral 1177 1179 1181 1186 : -0.0000\n", - "Dihedral 1179 1181 1183 1190 : 0.4618\n", - "Dihedral 1186 1181 1183 1190 : 0.4618\n", - "Dihedral 1186 1181 1179 1194 : -0.0000\n", - "Dihedral 1177 1179 1181 1183 : -0.0000\n", - "Dihedral 1183 1181 1179 1194 : -0.0000\n", - "Side Chain Topographical Entropy (ILE 78) : 0.9237\n", - "----------Working on resid : 79 (PRO)----------\n", - "Found 6 exclusive dihedrals in residue PRO\n", - "Dihedral 1197 1199 1202 1205 : 5.7301\n", - "Dihedral 1197 1196 1205 1202 : -0.0000\n", - "Dihedral 1194 1196 1205 1202 : -0.0000\n", - "Dihedral 1202 1199 1197 1208 : -0.0000\n", - "Dihedral 1196 1205 1202 1199 : -0.0000\n", - "Dihedral 1196 1197 1199 1202 : -0.0000\n", - "Side Chain Topographical Entropy (PRO 79) : 5.7301\n", - "----------Working on resid : 80 (CYS)----------\n", - "Found 3 exclusive dihedrals in residue CYS\n", - "Dihedral 1217 1214 1212 1218 : -0.0000\n", - "Dihedral 1210 1212 1214 1217 : -0.0000\n", - "Dihedral 990 1217 1214 1212 : -0.0000\n", - "Side Chain Topographical Entropy (CYS 80) : 0.0000\n", - "----------Working on resid : 81 (SER)----------\n", - "Found 2 exclusive dihedrals in residue SER\n", - "Dihedral 1220 1222 1224 1227 : -0.0000\n", - "Dihedral 1227 1224 1222 1229 : -0.0000\n", - "Side Chain Topographical Entropy (SER 81) : 0.0000\n", - "----------Working on resid : 82 (ALA)----------\n", - "Found 0 exclusive dihedrals in residue ALA\n", - "Side Chain Topographical Entropy (ALA 82) : 0.0000\n", - "----------Working on resid : 83 (LEU)----------\n", - "Found 4 exclusive dihedrals in residue LEU\n", - "Dihedral 1248 1245 1243 1258 : -0.0000\n", - "Dihedral 1241 1243 1245 1248 : -0.0000\n", - "Dihedral 1243 1245 1248 1254 : -0.0000\n", - "Dihedral 1243 1245 1248 1250 : -0.0000\n", - "Side Chain Topographical Entropy (LEU 83) : 0.0000\n", - "----------Working on resid : 84 (LEU)----------\n", - "Found 4 exclusive dihedrals in residue LEU\n", - "Dihedral 1262 1264 1267 1269 : -0.0000\n", - "Dihedral 1260 1262 1264 1267 : -0.0000\n", - "Dihedral 1262 1264 1267 1273 : -0.0000\n", - "Dihedral 1267 1264 1262 1277 : -0.0000\n", - "Side Chain Topographical Entropy (LEU 84) : 0.0000\n", - "----------Working on resid : 85 (SER)----------\n", - "Found 2 exclusive dihedrals in residue SER\n", - "Dihedral 1286 1283 1281 1288 : 0.8087\n", - "Dihedral 1279 1281 1283 1286 : 0.4618\n", - "Side Chain Topographical Entropy (SER 85) : 1.2706\n", - "----------Working on resid : 86 (SER)----------\n", - "Found 2 exclusive dihedrals in residue SER\n", - "Dihedral 1290 1292 1294 1297 : 0.4618\n", - "Dihedral 1297 1294 1292 1299 : 0.4618\n", - "Side Chain Topographical Entropy (SER 86) : 0.9237\n", - "----------Working on resid : 87 (ASP)----------\n", - "Found 5 exclusive dihedrals in residue ASP\n", - "Dihedral 1305 1309 1308 1310 : -0.0000\n", - "Dihedral 1303 1305 1308 1309 : 4.3242\n", - "Dihedral 1308 1305 1303 1311 : -0.0000\n", - "Dihedral 1303 1305 1308 1310 : 7.3450\n", - "Dihedral 1301 1303 1305 1308 : -0.0000\n", - "Side Chain Topographical Entropy (ASP 87) : 11.6692\n", - "----------Working on resid : 88 (ILE)----------\n", - "Found 6 exclusive dihedrals in residue ILE\n", - "Dihedral 1315 1317 1319 1326 : -0.0000\n", - "Dihedral 1313 1315 1317 1322 : -0.0000\n", - "Dihedral 1322 1317 1315 1330 : -0.0000\n", - "Dihedral 1322 1317 1319 1326 : 0.4618\n", - "Dihedral 1319 1317 1315 1330 : -0.0000\n", - "Dihedral 1313 1315 1317 1319 : -0.0000\n", - "Side Chain Topographical Entropy (ILE 88) : 0.4618\n", - "----------Working on resid : 89 (THR)----------\n", - "Found 4 exclusive dihedrals in residue THR\n", - "Dihedral 1332 1334 1336 1338 : 0.8087\n", - "Dihedral 1338 1336 1334 1344 : -0.0000\n", - "Dihedral 1340 1336 1334 1344 : -0.0000\n", - "Dihedral 1332 1334 1336 1340 : -0.0000\n", - "Side Chain Topographical Entropy (THR 89) : 0.8087\n", - "----------Working on resid : 90 (ALA)----------\n", - "Found 0 exclusive dihedrals in residue ALA\n", - "Side Chain Topographical Entropy (ALA 90) : 0.0000\n", - "----------Working on resid : 91 (SER)----------\n", - "Found 2 exclusive dihedrals in residue SER\n", - "Dihedral 1356 1358 1360 1363 : -0.0000\n", - "Dihedral 1363 1360 1358 1365 : -0.0000\n", - "Side Chain Topographical Entropy (SER 91) : 0.0000\n", - "----------Working on resid : 92 (VAL)----------\n", - "Found 4 exclusive dihedrals in residue VAL\n", - "Dihedral 1367 1369 1371 1377 : -0.0000\n", - "Dihedral 1373 1371 1369 1381 : -0.0000\n", - "Dihedral 1367 1369 1371 1373 : -0.0000\n", - "Dihedral 1377 1371 1369 1381 : -0.0000\n", - "Side Chain Topographical Entropy (VAL 92) : 0.0000\n", - "----------Working on resid : 93 (ASN)----------\n", - "Found 5 exclusive dihedrals in residue ASN\n", - "Dihedral 1385 1387 1390 1391 : 5.6941\n", - "Dihedral 1387 1392 1390 1391 : -0.0000\n", - "Dihedral 1385 1387 1390 1392 : 7.7133\n", - "Dihedral 1390 1387 1385 1395 : 5.7627\n", - "Dihedral 1383 1385 1387 1390 : 5.7432\n", - "Side Chain Topographical Entropy (ASN 93) : 24.9133\n", - "----------Working on resid : 94 (CYS)----------\n", - "Found 3 exclusive dihedrals in residue CYS\n", - "Dihedral 1160 1404 1401 1399 : -0.0000\n", - "Dihedral 1397 1399 1401 1404 : -0.0000\n", - "Dihedral 1404 1401 1399 1405 : -0.0000\n", - "Side Chain Topographical Entropy (CYS 94) : 0.0000\n", - "----------Working on resid : 95 (ALA)----------\n", - "Found 0 exclusive dihedrals in residue ALA\n", - "Side Chain Topographical Entropy (ALA 95) : 0.0000\n", - "----------Working on resid : 96 (LYS)----------\n", - "Found 5 exclusive dihedrals in residue LYS\n", - "Dihedral 1417 1419 1421 1424 : -0.0000\n", - "Dihedral 1421 1424 1427 1430 : 8.0466\n", - "Dihedral 1424 1427 1430 1433 : -0.0000\n", - "Dihedral 1424 1421 1419 1437 : -0.0000\n", - "Dihedral 1419 1421 1424 1427 : -0.0000\n", - "Side Chain Topographical Entropy (LYS 96) : 8.0466\n", - "----------Working on resid : 97 (LYS)----------\n", - "Found 5 exclusive dihedrals in residue LYS\n", - "Dihedral 1446 1443 1441 1459 : 4.4608\n", - "Dihedral 1441 1443 1446 1449 : 0.4618\n", - "Dihedral 1446 1449 1452 1455 : 2.4983\n", - "Dihedral 1443 1446 1449 1452 : 0.8087\n", - "Dihedral 1439 1441 1443 1446 : 5.1269\n", - "Side Chain Topographical Entropy (LYS 97) : 13.3565\n", - "----------Working on resid : 98 (ILE)----------\n", - "Found 6 exclusive dihedrals in residue ILE\n", - "Dihedral 1470 1465 1467 1474 : -0.0000\n", - "Dihedral 1463 1465 1467 1474 : -0.0000\n", - "Dihedral 1470 1465 1463 1478 : -0.0000\n", - "Dihedral 1461 1463 1465 1467 : 0.4618\n", - "Dihedral 1467 1465 1463 1478 : -0.0000\n", - "Dihedral 1461 1463 1465 1470 : -0.0000\n", - "Side Chain Topographical Entropy (ILE 98) : 0.4618\n", - "----------Working on resid : 99 (VAL)----------\n", - "Found 4 exclusive dihedrals in residue VAL\n", - "Dihedral 1490 1484 1482 1494 : 0.8087\n", - "Dihedral 1486 1484 1482 1494 : 0.8087\n", - "Dihedral 1480 1482 1484 1486 : 0.8087\n", - "Dihedral 1480 1482 1484 1490 : 0.8087\n", - "Side Chain Topographical Entropy (VAL 99) : 3.2349\n", - "----------Working on resid : 100 (SER)----------\n", - "Found 2 exclusive dihedrals in residue SER\n", - "Dihedral 1503 1500 1498 1505 : 5.7432\n", - "Dihedral 1496 1498 1500 1503 : 5.7301\n", - "Side Chain Topographical Entropy (SER 100) : 11.4732\n", - "----------Working on resid : 101 (ASP)----------\n", - "Found 5 exclusive dihedrals in residue ASP\n", - "Dihedral 1507 1509 1511 1514 : 2.3017\n", - "Dihedral 1509 1511 1514 1515 : 1.3859\n", - "Dihedral 1509 1511 1514 1516 : -0.0000\n", - "Dihedral 1511 1515 1514 1516 : -0.0000\n", - "Dihedral 1514 1511 1509 1517 : 1.1117\n", - "Side Chain Topographical Entropy (ASP 101) : 4.7993\n", - "----------Working on resid : 102 (GLY)----------\n", - "Found 0 exclusive dihedrals in residue GLY\n", - "Side Chain Topographical Entropy (GLY 102) : 0.0000\n", - "----------Working on resid : 103 (ASN)----------\n", - "Found 5 exclusive dihedrals in residue ASN\n", - "Dihedral 1528 1530 1533 1534 : 4.4608\n", - "Dihedral 1533 1530 1528 1538 : 4.0199\n", - "Dihedral 1528 1530 1533 1535 : 5.6826\n", - "Dihedral 1526 1528 1530 1533 : 3.6337\n", - "Dihedral 1530 1535 1533 1534 : -0.0000\n", - "Side Chain Topographical Entropy (ASN 103) : 17.7970\n", - "----------Working on resid : 104 (GLY)----------\n", - "Found 0 exclusive dihedrals in residue GLY\n", - "Side Chain Topographical Entropy (GLY 104) : 0.0000\n", - "----------Working on resid : 105 (MET)----------\n", - "Found 4 exclusive dihedrals in residue MET\n", - "Dihedral 1551 1554 1557 1558 : 8.3226\n", - "Dihedral 1554 1551 1549 1562 : 4.0199\n", - "Dihedral 1549 1551 1554 1557 : 0.4618\n", - "Dihedral 1547 1549 1551 1554 : 3.3461\n", - "Side Chain Topographical Entropy (MET 105) : 16.1504\n", - "----------Working on resid : 106 (ASN)----------\n", - "Found 5 exclusive dihedrals in residue ASN\n", - "Dihedral 1564 1566 1568 1571 : -0.0000\n", - "Dihedral 1571 1568 1566 1576 : -0.0000\n", - "Dihedral 1566 1568 1571 1573 : 2.6848\n", - "Dihedral 1568 1573 1571 1572 : -0.0000\n", - "Dihedral 1566 1568 1571 1572 : 0.4618\n", - "Side Chain Topographical Entropy (ASN 106) : 3.1466\n", - "----------Working on resid : 107 (ALA)----------\n", - "Found 0 exclusive dihedrals in residue ALA\n", - "Side Chain Topographical Entropy (ALA 107) : 0.0000\n", - "----------Working on resid : 108 (TRP)----------\n", - "Found 24 exclusive dihedrals in residue TRP\n", - "Dihedral 1598 1595 1596 1599 : -0.0000\n", - "Dihedral 1595 1598 1602 1606 : -0.0000\n", - "Dihedral 1595 1592 1590 1610 : -0.0000\n", - "Dihedral 1588 1590 1592 1595 : -0.0000\n", - "Dihedral 1592 1595 1596 1599 : -0.0000\n", - "Dihedral 1601 1604 1608 1606 : -0.0000\n", - "Dihedral 1602 1598 1601 1604 : -0.0000\n", - "Dihedral 1601 1598 1602 1606 : -0.0000\n", - "Dihedral 1599 1601 1598 1602 : -0.0000\n", - "Dihedral 1596 1595 1598 1601 : -0.0000\n", - "Dihedral 1595 1596 1599 1601 : -0.0000\n", - "Dihedral 1596 1599 1601 1604 : -0.0000\n", - "Dihedral 1592 1595 1598 1601 : -0.0000\n", - "Dihedral 1596 1599 1601 1598 : -0.0000\n", - "Dihedral 1595 1598 1601 1604 : -0.0000\n", - "Dihedral 1602 1606 1608 1604 : -0.0000\n", - "Dihedral 1599 1601 1604 1608 : -0.0000\n", - "Dihedral 1598 1601 1604 1608 : -0.0000\n", - "Dihedral 1592 1595 1598 1596 : -0.0000\n", - "Dihedral 1596 1595 1598 1602 : -0.0000\n", - "Dihedral 1598 1602 1606 1608 : -0.0000\n", - "Dihedral 1590 1592 1595 1596 : 2.3017\n", - "Dihedral 1592 1595 1598 1602 : -0.0000\n", - "Dihedral 1595 1598 1601 1599 : -0.0000\n", - "Side Chain Topographical Entropy (TRP 108) : 2.3017\n", - "----------Working on resid : 109 (VAL)----------\n", - "Found 4 exclusive dihedrals in residue VAL\n", - "Dihedral 1612 1614 1616 1618 : -0.0000\n", - "Dihedral 1612 1614 1616 1622 : -0.0000\n", - "Dihedral 1618 1616 1614 1626 : -0.0000\n", - "Dihedral 1622 1616 1614 1626 : -0.0000\n", - "Side Chain Topographical Entropy (VAL 109) : 0.0000\n", - "----------Working on resid : 110 (ALA)----------\n", - "Found 0 exclusive dihedrals in residue ALA\n", - "Side Chain Topographical Entropy (ALA 110) : 0.0000\n", - "----------Working on resid : 111 (TRP)----------\n", - "Found 24 exclusive dihedrals in residue TRP\n", - "Dihedral 1645 1648 1652 1656 : -0.0000\n", - "Dihedral 1645 1642 1640 1660 : 0.4618\n", - "Dihedral 1642 1645 1648 1652 : -0.0000\n", - "Dihedral 1646 1645 1648 1651 : -0.0000\n", - "Dihedral 1648 1651 1654 1658 : -0.0000\n", - "Dihedral 1651 1648 1652 1656 : -0.0000\n", - "Dihedral 1652 1656 1658 1654 : -0.0000\n", - "Dihedral 1640 1642 1645 1646 : 5.6941\n", - "Dihedral 1646 1645 1648 1652 : -0.0000\n", - "Dihedral 1645 1648 1651 1649 : -0.0000\n", - "Dihedral 1642 1645 1646 1649 : -0.0000\n", - "Dihedral 1645 1646 1649 1651 : -0.0000\n", - "Dihedral 1649 1651 1648 1652 : -0.0000\n", - "Dihedral 1648 1652 1656 1658 : -0.0000\n", - "Dihedral 1646 1649 1651 1654 : -0.0000\n", - "Dihedral 1651 1654 1658 1656 : -0.0000\n", - "Dihedral 1652 1648 1651 1654 : -0.0000\n", - "Dihedral 1642 1645 1648 1651 : -0.0000\n", - "Dihedral 1645 1648 1651 1654 : -0.0000\n", - "Dihedral 1646 1649 1651 1648 : -0.0000\n", - "Dihedral 1649 1651 1654 1658 : -0.0000\n", - "Dihedral 1638 1640 1642 1645 : 0.8087\n", - "Dihedral 1642 1645 1648 1646 : -0.0000\n", - "Dihedral 1648 1645 1646 1649 : -0.0000\n", - "Side Chain Topographical Entropy (TRP 111) : 6.9646\n", - "----------Working on resid : 112 (ARG)----------\n", - "Found 8 exclusive dihedrals in residue ARG\n", - "Dihedral 1672 1675 1677 1681 : 0.4618\n", - "Dihedral 1672 1675 1677 1678 : -0.0000\n", - "Dihedral 1675 1678 1677 1681 : -0.0000\n", - "Dihedral 1669 1672 1675 1677 : -0.0000\n", - "Dihedral 1669 1666 1664 1684 : -0.0000\n", - "Dihedral 1666 1669 1672 1675 : -0.0000\n", - "Dihedral 1662 1664 1666 1669 : -0.0000\n", - "Dihedral 1664 1666 1669 1672 : 2.6848\n", - "Side Chain Topographical Entropy (ARG 112) : 3.1466\n", - "----------Working on resid : 113 (ASN)----------\n", - "Found 5 exclusive dihedrals in residue ASN\n", - "Dihedral 1690 1695 1693 1694 : -0.0000\n", - "Dihedral 1688 1690 1693 1695 : 8.7346\n", - "Dihedral 1693 1690 1688 1698 : 5.6941\n", - "Dihedral 1688 1690 1693 1694 : 6.0621\n", - "Dihedral 1686 1688 1690 1693 : 5.6941\n", - "Side Chain Topographical Entropy (ASN 113) : 26.1849\n", - "----------Working on resid : 114 (ARG)----------\n", - "Found 8 exclusive dihedrals in residue ARG\n", - "Dihedral 1704 1707 1710 1713 : 2.9698\n", - "Dihedral 1707 1710 1713 1715 : 4.5590\n", - "Dihedral 1702 1704 1707 1710 : 3.7682\n", - "Dihedral 1710 1713 1715 1719 : -0.0000\n", - "Dihedral 1700 1702 1704 1707 : -0.0000\n", - "Dihedral 1707 1704 1702 1722 : -0.0000\n", - "Dihedral 1713 1716 1715 1719 : -0.0000\n", - "Dihedral 1710 1713 1715 1716 : -0.0000\n", - "Side Chain Topographical Entropy (ARG 114) : 11.2970\n", - "----------Working on resid : 115 (CYS)----------\n", - "Found 3 exclusive dihedrals in residue CYS\n", - "Dihedral 1724 1726 1728 1731 : 0.4618\n", - "Dihedral 468 1731 1728 1726 : -0.0000\n", - "Dihedral 1731 1728 1726 1732 : 0.4618\n", - "Side Chain Topographical Entropy (CYS 115) : 0.9237\n", - "----------Working on resid : 116 (LYS)----------\n", - "Found 5 exclusive dihedrals in residue LYS\n", - "Dihedral 1734 1736 1738 1741 : 5.0579\n", - "Dihedral 1741 1738 1736 1754 : 5.1269\n", - "Dihedral 1741 1744 1747 1750 : 2.0960\n", - "Dihedral 1738 1741 1744 1747 : 3.1380\n", - "Dihedral 1736 1738 1741 1744 : -0.0000\n", - "Side Chain Topographical Entropy (LYS 116) : 15.4188\n", - "----------Working on resid : 117 (GLY)----------\n", - "Found 0 exclusive dihedrals in residue GLY\n", - "Side Chain Topographical Entropy (GLY 117) : 0.0000\n", - "----------Working on resid : 118 (THR)----------\n", - "Found 4 exclusive dihedrals in residue THR\n", - "Dihedral 1769 1767 1765 1775 : -0.0000\n", - "Dihedral 1763 1765 1767 1769 : 0.4618\n", - "Dihedral 1771 1767 1765 1775 : -0.0000\n", - "Dihedral 1763 1765 1767 1771 : 0.4618\n", - "Side Chain Topographical Entropy (THR 118) : 0.9237\n", - "----------Working on resid : 119 (ASP)----------\n", - "Found 5 exclusive dihedrals in residue ASP\n", - "Dihedral 1779 1781 1784 1785 : 0.4618\n", - "Dihedral 1784 1781 1779 1787 : -0.0000\n", - "Dihedral 1781 1785 1784 1786 : -0.0000\n", - "Dihedral 1777 1779 1781 1784 : -0.0000\n", - "Dihedral 1779 1781 1784 1786 : 5.0579\n", - "Side Chain Topographical Entropy (ASP 119) : 5.5197\n", - "----------Working on resid : 120 (VAL)----------\n", - "Found 4 exclusive dihedrals in residue VAL\n", - "Dihedral 1789 1791 1793 1799 : 0.4618\n", - "Dihedral 1795 1793 1791 1803 : -0.0000\n", - "Dihedral 1799 1793 1791 1803 : -0.0000\n", - "Dihedral 1789 1791 1793 1795 : -0.0000\n", - "Side Chain Topographical Entropy (VAL 120) : 0.4618\n", - "----------Working on resid : 121 (GLN)----------\n", - "Found 6 exclusive dihedrals in residue GLN\n", - "Dihedral 1807 1809 1812 1815 : 5.0579\n", - "Dihedral 1809 1812 1815 1816 : 8.2069\n", - "Dihedral 1812 1817 1815 1816 : -0.0000\n", - "Dihedral 1809 1812 1815 1817 : 8.2069\n", - "Dihedral 1812 1809 1807 1820 : 3.6337\n", - "Dihedral 1805 1807 1809 1812 : 3.6337\n", - "Side Chain Topographical Entropy (GLN 121) : 28.7391\n", - "----------Working on resid : 122 (ALA)----------\n", - "Found 0 exclusive dihedrals in residue ALA\n", - "Side Chain Topographical Entropy (ALA 122) : 0.0000\n", - "----------Working on resid : 123 (TRP)----------\n", - "Found 24 exclusive dihedrals in residue TRP\n", - "Dihedral 1843 1845 1848 1852 : -0.0000\n", - "Dihedral 1840 1843 1845 1848 : -0.0000\n", - "Dihedral 1836 1839 1842 1840 : -0.0000\n", - "Dihedral 1842 1839 1840 1843 : -0.0000\n", - "Dihedral 1839 1842 1845 1843 : -0.0000\n", - "Dihedral 1842 1846 1850 1852 : -0.0000\n", - "Dihedral 1836 1839 1840 1843 : -0.0000\n", - "Dihedral 1839 1836 1834 1854 : -0.0000\n", - "Dihedral 1845 1848 1852 1850 : -0.0000\n", - "Dihedral 1836 1839 1842 1845 : -0.0000\n", - "Dihedral 1840 1839 1842 1845 : -0.0000\n", - "Dihedral 1840 1843 1845 1842 : -0.0000\n", - "Dihedral 1839 1842 1846 1850 : -0.0000\n", - "Dihedral 1846 1842 1845 1848 : -0.0000\n", - "Dihedral 1843 1845 1842 1846 : -0.0000\n", - "Dihedral 1840 1839 1842 1846 : -0.0000\n", - "Dihedral 1834 1836 1839 1840 : 1.6384\n", - "Dihedral 1836 1839 1842 1846 : -0.0000\n", - "Dihedral 1839 1842 1845 1848 : -0.0000\n", - "Dihedral 1839 1840 1843 1845 : -0.0000\n", - "Dihedral 1846 1850 1852 1848 : -0.0000\n", - "Dihedral 1832 1834 1836 1839 : -0.0000\n", - "Dihedral 1842 1845 1848 1852 : -0.0000\n", - "Dihedral 1845 1842 1846 1850 : -0.0000\n", - "Side Chain Topographical Entropy (TRP 123) : 1.6384\n", - "----------Working on resid : 124 (ILE)----------\n", - "Found 6 exclusive dihedrals in residue ILE\n", - "Dihedral 1862 1860 1858 1873 : -0.0000\n", - "Dihedral 1856 1858 1860 1865 : -0.0000\n", - "Dihedral 1858 1860 1862 1869 : 3.3461\n", - "Dihedral 1865 1860 1862 1869 : 3.1922\n", - "Dihedral 1856 1858 1860 1862 : -0.0000\n", - "Dihedral 1865 1860 1858 1873 : -0.0000\n", - "Side Chain Topographical Entropy (ILE 124) : 6.5383\n", - "----------Working on resid : 125 (ARG)----------\n", - "Found 8 exclusive dihedrals in residue ARG\n", - "Dihedral 1882 1885 1888 1890 : 1.1117\n", - "Dihedral 1877 1879 1882 1885 : 1.3859\n", - "Dihedral 1885 1888 1890 1894 : -0.0000\n", - "Dihedral 1888 1891 1890 1894 : -0.0000\n", - "Dihedral 1875 1877 1879 1882 : -0.0000\n", - "Dihedral 1879 1882 1885 1888 : 1.8735\n", - "Dihedral 1882 1879 1877 1897 : -0.0000\n", - "Dihedral 1885 1888 1890 1891 : -0.0000\n", - "Side Chain Topographical Entropy (ARG 125) : 4.3711\n", - "----------Working on resid : 126 (GLY)----------\n", - "Found 0 exclusive dihedrals in residue GLY\n", - "Side Chain Topographical Entropy (GLY 126) : 0.0000\n", - "----------Working on resid : 127 (CYS)----------\n", - "Found 3 exclusive dihedrals in residue CYS\n", - "Dihedral 98 1913 1910 1908 : -0.0000\n", - "Dihedral 1906 1908 1910 1913 : -0.0000\n", - "Dihedral 1913 1910 1908 1914 : -0.0000\n", - "Side Chain Topographical Entropy (CYS 127) : 0.0000\n", - "----------Working on resid : 128 (ARG)----------\n", - "Found 8 exclusive dihedrals in residue ARG\n", - "Dihedral 1923 1926 1929 1931 : 5.5457\n", - "Dihedral 1923 1920 1918 1938 : -0.0000\n", - "Dihedral 1929 1932 1931 1935 : -0.0000\n", - "Dihedral 1920 1923 1926 1929 : 5.5832\n", - "Dihedral 1926 1929 1931 1932 : -0.0000\n", - "Dihedral 1918 1920 1923 1926 : 5.8865\n", - "Dihedral 1926 1929 1931 1935 : -0.0000\n", - "Dihedral 1916 1918 1920 1923 : -0.0000\n", - "Side Chain Topographical Entropy (ARG 128) : 17.0153\n", - "----------Working on resid : 129 (LEU)----------\n", - "Found 5 exclusive dihedrals in residue LEU\n", - "Dihedral 1940 1942 1944 1947 : 0.4618\n", - "Dihedral 1947 1944 1942 1957 : -0.0000\n", - "Dihedral 1942 1944 1947 1953 : 2.7582\n", - "Dihedral 1942 1958 1957 1959 : -0.0000\n", - "Dihedral 1942 1944 1947 1949 : 2.7374\n", - "Side Chain Topographical Entropy (LEU 129) : 5.9574\n", - "------------------------------------------------------------\n", - "Total SC Topog. Entropy : 621.207\n", - "------------------------------------------------------------\n", - "result_topo_SC = 621.2072742842519\n" - ] - } - ], - "source": [ - "result_topo_SC = EF.compute_topographical_entropy0_SC(\n", - " arg_hostDataContainer = dataContainer, \n", - " arg_selector = selection_string,\n", - " arg_outFile = outfile, \n", - " arg_verbose = verbose\n", - ")\n", - "\n", - "print(f\"result_topo_SC = {result_topo_SC}\")" - ] - }, - { - "cell_type": "markdown", - "id": "ead0f792-4665-4014-aa34-7f71656787a0", - "metadata": {}, - "source": [ - "### Total Entropy" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "a71f0874-9ab2-4b6d-a3cb-00c8d3818544", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Total Entropy = 6897.588318899479 J/mol/K\n" - ] - } - ], - "source": [ - "total = wm_entropyFF + wm_entropyTT + UA_entropyFF + UA_entropyTT + result_topo_SC +result_topo_BB\n", - "print(f\"Total Entropy = {total} J/mol/K\")" - ] - }, - { - "cell_type": "markdown", - "id": "dc0251a6-51cd-49ea-a51e-ccb93d3e030e", - "metadata": {}, - "source": [ - "## Load data into POSEIDON object" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "27d6c683-6d78-4efe-910d-7e912261280c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-07-01 07:54:39.259567\n", - "frame = 0\n", - "< Timestep 0 with unit cell dimensions [69.57307 69.57307 69.57307 90. 90. 90. ] >\n", - "0:00:23.497173\n", - "frame = 1\n", - "< Timestep 1 with unit cell dimensions [69.476456 69.476456 69.476456 90. 90. 90. ] >\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/donald/miniconda3/envs/CEtrial/lib/python3.10/site-packages/CodeEntropy/poseidon/extractData/HBRAD.py:192: RuntimeWarning: invalid value encountered in arccos\n", - " angle1 = np.arccos(cosine_angle)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0:00:43.408170\n", - "frame = 2\n", - "< Timestep 2 with unit cell dimensions [69.61369 69.61369 69.61369 90. 90. 90. ] >\n", - "0:01:02.702662\n", - "frame = 3\n", - "< Timestep 3 with unit cell dimensions [69.52697 69.52697 69.52697 90. 90. 90. ] >\n", - "0:01:21.791872\n", - "frame = 4\n", - "< Timestep 4 with unit cell dimensions [69.57063 69.57063 69.57063 90. 90. 90. ] >\n", - "0:01:42.639399\n", - "frame = 5\n", - "< Timestep 5 with unit cell dimensions [69.51649 69.51649 69.51649 90. 90. 90. ] >\n", - "0:02:03.379333\n", - "frame = 6\n", - "< Timestep 6 with unit cell dimensions [69.44309 69.44309 69.44309 90. 90. 90. ] >\n", - "0:02:23.789225\n", - "frame = 7\n", - "< Timestep 7 with unit cell dimensions [69.6301 69.6301 69.6301 90. 90. 90. ] >\n", - "0:02:44.362540\n", - "frame = 8\n", - "< Timestep 8 with unit cell dimensions [69.58307 69.58307 69.58307 90. 90. 90. ] >\n", - "0:03:03.665345\n", - "frame = 9\n", - "< Timestep 9 with unit cell dimensions [69.59987 69.59987 69.59987 90. 90. 90. ] >\n", - "0:03:22.878227\n", - "frame = 10\n", - "< Timestep 10 with unit cell dimensions [69.423225 69.423225 69.423225 90. 90. 90. ] >\n", - "0:03:42.041520\n", - "frame = 11\n", - "< Timestep 11 with unit cell dimensions [69.52472 69.52472 69.52472 90. 90. 90. ] >\n", - "0:04:00.950893\n", - "frame = 12\n", - "< Timestep 12 with unit cell dimensions [69.57178 69.57178 69.57178 90. 90. 90. ] >\n", - "0:04:20.101277\n", - "frame = 13\n", - "< Timestep 13 with unit cell dimensions [69.63195 69.63195 69.63195 90. 90. 90. ] >\n", - "0:04:39.648544\n", - "frame = 14\n", - "< Timestep 14 with unit cell dimensions [69.57624 69.57624 69.57624 90. 90. 90. ] >\n", - "0:04:58.673047\n", - "frame = 15\n", - "< Timestep 15 with unit cell dimensions [69.51102 69.51102 69.51102 90. 90. 90. ] >\n", - "0:05:17.939509\n", - "frame = 16\n", - "< Timestep 16 with unit cell dimensions [69.66424 69.66424 69.66424 90. 90. 90. ] >\n", - "0:05:37.491462\n", - "frame = 17\n", - "< Timestep 17 with unit cell dimensions [69.58037 69.58037 69.58037 90. 90. 90. ] >\n", - "0:05:59.811085\n", - "frame = 18\n", - "< Timestep 18 with unit cell dimensions [69.56723 69.56723 69.56723 90. 90. 90. ] >\n", - "0:06:25.051674\n", - "frame = 19\n", - "< Timestep 19 with unit cell dimensions [69.44169 69.44169 69.44169 90. 90. 90. ] >\n", - "0:06:45.562353\n", - "0:06:45.563189\n" - ] - } - ], - "source": [ - "from CodeEntropy.ClassCollection.PoseidonClass import Poseidon\n", - "poseidon_object = Poseidon(container=u, start=0, end=20)" - ] - }, - { - "cell_type": "markdown", - "id": "12499173-fe14-49e7-8187-b78aee90695a", - "metadata": { - "tags": [] - }, - "source": [ - "## Calculate Entropy" - ] - }, - { - "cell_type": "markdown", - "id": "d3a39def-6a46-4bd6-bf42-0a08c0e82460", - "metadata": { - "tags": [] - }, - "source": [ - "### Whole Molecule level" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "e24ce743-deab-45f0-8c7b-a9faf02a0772", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-07-01 08:01:24.918433\n", - "\n", - "solvent: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "water: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "1. Populate Dictionaries\n", - "\n", - "memory use: 1.465 GB\n", - "0:00:00.000895\n", - "memory use: 1.444 GB\n", - "0:00:15.993168\n", - "0:00:15.993540\n", - "memory use: 1.444 GB\n", - "\n", - "Total number of frames: 20.0\n", - "Number of atoms in each frame: 11645\n", - "Number of variables in each list: 19\n", - "\n", - "2. Process Dictionaries\n", - "['moleculeLevel']\n", - "---level: moleculeLevel\n", - "\n", - "\n", - "0:00:18.758795\n", - "{'moleculeLevel': {'solventData': nearest assigned shell_num variable value count\n", - "0 ALA SOL 1.0 Sor_test2 2.045613 270\n", - "1 ALA SOL 1.0 Strans 10.853957 270\n", - "2 ALA SOL 1.0 Srot 0.541862 270\n", - "3 ALA SOL 1.0 count 13.5 270\n", - "4 ARG SOL 1.0 Sor_test2 4.307759 2145\n", - ".. ... ... ... ... ... ...\n", - "79 TYR SOL 1.0 count 8.45 169\n", - "80 VAL SOL 1.0 Sor_test2 2.656455 272\n", - "81 VAL SOL 1.0 Strans 11.283552 272\n", - "82 VAL SOL 1.0 Srot 0.59179 272\n", - "83 VAL SOL 1.0 count 13.6 272\n", - "\n", - "[84 rows x 6 columns], 'soluteData': resName variable value count\n", - "0 ALA WM_Strans 2.237692 240\n", - "1 ALA WM_Srot 1.842312 240\n", - "2 ALA WM_UA_Strans 0.00309 240\n", - "3 ALA WM_UA_Srot 2.528334 240\n", - "4 ARG WM_Strans 6.307841 220\n", - ".. ... ... ... ...\n", - "102 VAL WM_Strans 4.246468 120\n", - "103 VAL WM_Srot 3.30274 120\n", - "104 VAL WM_UA_Strans 1.857501 120\n", - "105 VAL WM_UA_Srot 5.012486 120\n", - "106 VAL conf_AE 29.58624 120\n", - "\n", - "[107 rows x 4 columns]}}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/donald/miniconda3/envs/CEtrial/lib/python3.10/site-packages/CodeEntropy/poseidon/analysis/EECalculation.py:859: RuntimeWarning: invalid value encountered in double_scalars\n", - " w = w ** 0.5\n" - ] - } - ], - "source": [ - "result_wm = poseidon_object.run_analysis(level_list = ['moleculeLevel'], verbose=False, forceUnits=\"Kcal\") # this is because the forces value supplied in this trajectory is in Kcal\n", - "print(result_wm)" - ] - }, - { - "cell_type": "markdown", - "id": "e77e9fe4-bef4-4581-924a-aec10be30ca6", - "metadata": {}, - "source": [ - "### Residue Level" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "ade19540-baa8-4547-99f9-49b0c10676bf", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-07-01 08:01:43.702703\n", - "\n", - "solvent: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "water: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "1. Populate Dictionaries\n", - "\n", - "memory use: 1.442 GB\n", - "0:00:00.001196\n", - "memory use: 1.442 GB\n", - "0:00:16.582369\n", - "0:00:16.582742\n", - "memory use: 1.442 GB\n", - "\n", - "Total number of frames: 20.0\n", - "Number of atoms in each frame: 11645\n", - "Number of variables in each list: 19\n", - "\n", - "2. Process Dictionaries\n", - "['residLevel_resname']\n", - "---level: residLevel_resname\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/donald/miniconda3/envs/CEtrial/lib/python3.10/site-packages/CodeEntropy/poseidon/analysis/EECalculation.py:859: RuntimeWarning: invalid value encountered in double_scalars\n", - " w = w ** 0.5\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "0:00:22.815625\n", - "{'residLevel_resname': {'solventData': nearest assigned shell_num variable value count\n", - "0 ALA_10 SOL 1.0 Sor_test2 2.050395 19\n", - "1 ALA_10 SOL 1.0 Strans 8.909477 19\n", - "2 ALA_10 SOL 1.0 Srot 0.379505 19\n", - "3 ALA_10 SOL 1.0 count 0.95 19\n", - "4 ALA_107 SOL 1.0 Sor_test2 1.684203 60\n", - ".. ... ... ... ... ... ...\n", - "515 VAL_2 SOL 1.0 count 6.75 135\n", - "516 VAL_99 SOL 1.0 Sor_test2 0.0 17\n", - "517 VAL_99 SOL 1.0 Strans 14.724812 17\n", - "518 VAL_99 SOL 1.0 Srot 1.644911 17\n", - "519 VAL_99 SOL 1.0 count 0.85 17\n", - "\n", - "[520 rows x 6 columns], 'soluteData': resName variable value count\n", - "0 ALA_10 WM_Strans 1.844334 20\n", - "1 ALA_10 WM_Srot 2.242724 20\n", - "2 ALA_10 WM_UA_Strans 0.018059 20\n", - "3 ALA_10 WM_UA_Srot 4.074224 20\n", - "4 ALA_107 WM_Strans 2.703594 20\n", - ".. ... ... ... ...\n", - "648 VAL_99 WM_Strans 5.531601 20\n", - "649 VAL_99 WM_Srot 4.94202 20\n", - "650 VAL_99 WM_UA_Strans 8.781792 20\n", - "651 VAL_99 WM_UA_Srot 18.983185 20\n", - "652 VAL_99 conf_AE 10.810959 20\n", - "\n", - "[653 rows x 4 columns], 'contactMatrix': centre_resid neighbour_resid count centre_resname neighbour_resname\n", - "0 10 9 3.05 ALA_10 ALA\n", - "1 10 11 3.05 ALA_10 ALA\n", - "2 10 14 3.65 ALA_10 ARG\n", - "3 10 128 0.1 ALA_10 ARG\n", - "4 10 6 1.6 ALA_10 CYS\n", - "... ... ... ... ... ...\n", - "1151 99 100 3.05 VAL_99 SER\n", - "1152 99 28 1.8 VAL_99 TRP\n", - "1153 99 108 0.3 VAL_99 TRP\n", - "1154 99 20 0.75 VAL_99 TYR\n", - "1155 99 23 1.4 VAL_99 TYR\n", - "\n", - "[1156 rows x 5 columns]}}\n" - ] - } - ], - "source": [ - "result_res = poseidon_object.run_analysis(level_list = ['residLevel_resname'], verbose=False, forceUnits=\"Kcal\") # this is because the forces value supplied in this trajectory is in Kcal\n", - "print(result_res)" - ] - }, - { - "cell_type": "markdown", - "id": "b883b430-6385-4da6-9493-65da31141a5b", - "metadata": {}, - "source": [ - "### United Atom Level" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "6a97aa33-b6cc-450f-9cec-513203a781bc", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-07-01 08:02:06.562839\n", - "\n", - "solvent: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "water: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "1. Populate Dictionaries\n", - "\n", - "memory use: 1.442 GB\n", - "0:00:00.001819\n", - "memory use: 1.442 GB\n", - "0:00:17.453313\n", - "0:00:17.454214\n", - "memory use: 1.442 GB\n", - "\n", - "Total number of frames: 20.0\n", - "Number of atoms in each frame: 11645\n", - "Number of variables in each list: 19\n", - "\n", - "2. Process Dictionaries\n", - "['residLevel_resname']\n", - "---level: residLevel_resname\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/donald/miniconda3/envs/CEtrial/lib/python3.10/site-packages/CodeEntropy/poseidon/analysis/EECalculation.py:859: RuntimeWarning: invalid value encountered in double_scalars\n", - " w = w ** 0.5\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "0:00:23.437742\n", - "{'residLevel_resname': {'solventData': nearest assigned shell_num variable value count\n", - "0 ALA_10 SOL 1.0 Sor_test2 2.050395 19\n", - "1 ALA_10 SOL 1.0 Strans 8.909477 19\n", - "2 ALA_10 SOL 1.0 Srot 0.379505 19\n", - "3 ALA_10 SOL 1.0 count 0.95 19\n", - "4 ALA_107 SOL 1.0 Sor_test2 1.684203 60\n", - ".. ... ... ... ... ... ...\n", - "515 VAL_2 SOL 1.0 count 6.75 135\n", - "516 VAL_99 SOL 1.0 Sor_test2 0.0 17\n", - "517 VAL_99 SOL 1.0 Strans 14.724812 17\n", - "518 VAL_99 SOL 1.0 Srot 1.644911 17\n", - "519 VAL_99 SOL 1.0 count 0.85 17\n", - "\n", - "[520 rows x 6 columns], 'soluteData': resName variable value count\n", - "0 ALA_10 WM_Strans 1.844334 20\n", - "1 ALA_10 WM_Srot 2.242724 20\n", - "2 ALA_10 WM_UA_Strans 0.018059 20\n", - "3 ALA_10 WM_UA_Srot 4.074224 20\n", - "4 ALA_107 WM_Strans 2.703594 20\n", - ".. ... ... ... ...\n", - "648 VAL_99 WM_Strans 5.531601 20\n", - "649 VAL_99 WM_Srot 4.94202 20\n", - "650 VAL_99 WM_UA_Strans 8.781792 20\n", - "651 VAL_99 WM_UA_Srot 18.983185 20\n", - "652 VAL_99 conf_AE 10.810959 20\n", - "\n", - "[653 rows x 4 columns], 'contactMatrix': centre_resid neighbour_resid count centre_resname neighbour_resname\n", - "0 10 9 3.05 ALA_10 ALA\n", - "1 10 11 3.05 ALA_10 ALA\n", - "2 10 14 3.65 ALA_10 ARG\n", - "3 10 128 0.1 ALA_10 ARG\n", - "4 10 6 1.6 ALA_10 CYS\n", - "... ... ... ... ... ...\n", - "1151 99 100 3.05 VAL_99 SER\n", - "1152 99 28 1.8 VAL_99 TRP\n", - "1153 99 108 0.3 VAL_99 TRP\n", - "1154 99 20 0.75 VAL_99 TYR\n", - "1155 99 23 1.4 VAL_99 TYR\n", - "\n", - "[1156 rows x 5 columns]}}\n" - ] - } - ], - "source": [ - "result_res = poseidon_object.run_analysis(level_list = ['residLevel_resname'], verbose=False, forceUnits=\"Kcal\") # this is because the forces value supplied in this trajectory is in Kcal\n", - "print(result_res)" - ] - }, - { - "cell_type": "markdown", - "id": "fa24f719-a17d-4a3d-aeac-d6553887e759", - "metadata": {}, - "source": [ - "### Solute Contact" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "8b901262-e191-4f3d-afb4-b1944debe30e", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2022-07-01 08:02:30.038599\n", - "\n", - "solvent: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "water: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']\n", - "\n", - "1. Populate Dictionaries\n", - "\n", - "memory use: 1.442 GB\n", - "0:00:00.002518\n", - "memory use: 1.442 GB\n", - "0:00:03.103853\n", - "0:00:03.104352\n", - "memory use: 1.442 GB\n", - "\n", - "Total number of frames: 20.0\n", - "Number of atoms in each frame: 11645\n", - "Number of variables in each list: 19\n", - "\n", - "2. Process Dictionaries\n", - "['soluteContacts']\n", - "---level: soluteContacts\n", - "\n", - "\n", - "0:00:14.487437\n", - "{'soluteContacts': {'solventData': nearest assigned shell_num variable value count\n", - "0 ALA_107_ALA_107 SOL 1.0 Sor_test2 0.483728 13\n", - "1 ALA_107_ALA_107 SOL 1.0 Strans 12.249477 13\n", - "2 ALA_107_ALA_107 SOL 1.0 Srot 1.600586 13\n", - "3 ALA_107_ALA_107 SOL 1.0 count 0.65 13\n", - "4 ALA_107_ARG_112 SOL 1.0 Sor_test2 0.173337 18\n", - "... ... ... ... ... ... ...\n", - "5691 VAL_99_TYR_23 SOL 1.0 count 0.2 4\n", - "5692 VAL_99_VAL_99 SOL 1.0 Sor_test2 0.0 7\n", - "5693 VAL_99_VAL_99 SOL 1.0 Strans 21.266607 7\n", - "5694 VAL_99_VAL_99 SOL 1.0 Srot 1.604742 7\n", - "5695 VAL_99_VAL_99 SOL 1.0 count 0.35 7\n", - "\n", - "[5696 rows x 6 columns], 'soluteData': Empty DataFrame\n", - "Columns: [resName, variable, value, count]\n", - "Index: []}}\n" - ] - } - ], - "source": [ - "result_solcon = poseidon_object.run_analysis(level_list = ['soluteContacts'], verbose=False, forceUnits=\"Kcal\") # this is because the forces value supplied in this trajectory is in Kcal\n", - "print(result_solcon)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.4" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/requirements.txt b/docs/requirements.txt deleted file mode 100644 index 87d18ff..0000000 --- a/docs/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -ipykernel -nbsphinx \ No newline at end of file diff --git a/docs/requirements.yaml b/docs/requirements.yaml deleted file mode 100644 index 46cc01e..0000000 --- a/docs/requirements.yaml +++ /dev/null @@ -1,13 +0,0 @@ -name: docs -channels: -dependencies: - # Base depends - - python - - pip - - - - # Pip-only installs - - pip: - - nbsphinx - From 0c0e4f2394aef64a7f0e9165ba82c256d0ae3090 Mon Sep 17 00:00:00 2001 From: skfegan Date: Fri, 30 May 2025 15:43:32 +0100 Subject: [PATCH 02/24] rough outline for new documentation --- docs/api.rst | 74 +++++++++++++++++++++++----------------- docs/community_guide.rst | 28 ++++++++++++++- docs/faq.rst | 4 ++- docs/getting_started.rst | 10 ++---- docs/index.rst | 4 +-- docs/science.rst | 48 ++++++++++++++++++++++++++ 6 files changed, 123 insertions(+), 45 deletions(-) create mode 100644 docs/science.rst diff --git a/docs/api.rst b/docs/api.rst index 746f8c3..9c0bc9c 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -6,57 +6,67 @@ Main .. autosummary:: :toctree: autosummary - CodeEntropy.main_mcc.create_job_folder - CodeEntropy.main_mcc.main + CodeEntropy.main.main -Calculations +Run Manager ------------ +.. autosummary:: + :toctree: autosummary -Conformation Functions -^^^^^^^^^^^^^^^^^^^^^^ + CodeEntropy.run.RunManager + CodeEntropy.run.RunManager.create_job_folder + CodeEntropy.run.RunManager.run_entropy_workflow + CodeEntropy.run.RunManager.new_U_select_frame + CodeEntropy.run.RunManager.new_U_select_atom + +Level Manager +------------- .. autosummary:: - :toctree: autosummary + :toctree: autosummary - CodeEntropy.calculations.ConformationFunctions.assign_conformation + CodeEntropy.levels.LevelManager + CodeEntropy.levels.LevelManager.select_levels + CodeEntropy.levels.LevelManager.get_matrices + CodeEntropy.levels.LevelManager.get_dihedrals + CodeEntropy.levels.LevelManager.get_beads + CodeEntropy.levels.LevelManager.get_axes + CodeEntropy.levels.LevelManager.get_avg_pos + CodeEntropy.levels.LevelManager.get_shpCoord_axes + CodeEntropy.levels.LevelManager.get_weighted_forces + CodeEntropy.levels.LevelManager.get_weighted_torques + CodeEntropy.levels.LevelManager.create_submatrix + CodeEntropy.levels.LevelManager.filter_zero_rows_columns -Entropy Functions -^^^^^^^^^^^^^^^^^ +Entropy Manager +--------------- .. autosummary:: :toctree: autosummary - CodeEntropy.calculations.EntropyFunctions.frequency_calculation - CodeEntropy.calculations.EntropyFunctions.vibrational_entropy - CodeEntropy.calculations.EntropyFunctions.conformational_entropy - CodeEntropy.calculations.EntropyFunctions.orientational_entropy + CodeEntropy.entropy.EntropyManager + CodeEntropy.entropy.EntropyManager.execute -Geometric Functions +Vibrational Entropy ^^^^^^^^^^^^^^^^^^^ .. autosummary:: :toctree: autosummary - CodeEntropy.calculations.GeometricFunctions.get_beads - CodeEntropy.calculations.GeometricFunctions.get_axes - CodeEntropy.calculations.GeometricFunctions.get_avg_pos - CodeEntropy.calculations.GeometricFunctions.get_sphCoord_axes - CodeEntropy.calculations.GeometricFunctions.get_weighted_forces - CodeEntropy.calculations.GeometricFunctions.get_weighted_torques - CodeEntropy.calculations.GeometricFunctions.create_submatrix - CodeEntropy.calculations.GeometricFunctions.filter_zero_rows_columns + CodeEntropy.entropy.VibrationalEntropy + CodeEntropy.entropy.VibrationalEntropy.frequency_calculation + CodeEntropy.entropy.VibrationalEntropy.vibrational_entropy_calculation + -Level Functions -^^^^^^^^^^^^^^^^^^^ +Conformational Entropy +^^^^^^^^^^^^^^^^^^^^^^ .. autosummary:: :toctree: autosummary - CodeEntropy.calculations.LevelFunctions.select_levels - CodeEntropy.calculations.LevelFunctions.get_matrices - CodeEntropy.calculations.LevelFunctions.get_dihedrals + CodeEntropy.entropy.ConformationalEntropy + CodeEntropy.entropy.ConformationalEntropy.assign_conformation + CodeEntropy.entropy.ConformationalEntropy.conformational_entropy_calculation -Config ------- +Orientational Entropy +^^^^^^^^^^^^^^^^^^^^^ .. autosummary:: :toctree: autosummary - :recursive: - - CodeEntropy.config + CodeEntropy.entropy.OrientationalEntropy diff --git a/docs/community_guide.rst b/docs/community_guide.rst index b527d13..69299dd 100644 --- a/docs/community_guide.rst +++ b/docs/community_guide.rst @@ -11,4 +11,30 @@ Create an issue ticket on GitHub and the team will review it as soon as possible Seek support ---------------- -Post on GitHub discussion and the team will reply as soon as possible. \ No newline at end of file +Post on GitHub discussion and the team will reply as soon as possible. + +Developer's Information +============================== + +CodeEntropy uses the Python programming language. + +Running tests +----------------------------- +To run the full test suite, simply install ``pytest`` and run in root directory of the repository: + +.. code-block:: bash + + pytest + +To only run the unit tests in a particular part of program. For example only running test for solute part. + +.. code-block:: bash + + pytest CodeEntropy/tests/test_CodeEntropy.py + + +To only run the a specific test. e.g. + +.. code-block:: bash + + pytest CodeEntropy/tests/test_CodeEntropy.py::test_CodeEntropy_parser_labForces diff --git a/docs/faq.rst b/docs/faq.rst index 29a60c9..187df3d 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -4,4 +4,6 @@ Frequently asked questions Why do I get ``nan`` or complex number result? -------------------------------------------------- -Try increasing the sampling time. This is especially true for residue level. For example in a lysozyme system, residue level we have largest FF and TT matrices because at this level we have the largest number of cells/beads (which is equal to the number of resides) compared to the molecule level (3 beads) and UA level (~10 beads per amino acid). So insufficient sampling might introduce noise and cause matrix elements to deviate to values that would not reflect the uncorrelated nature of force-force covariance of distantly positioned residues. +Try increasing the sampling time. This is especially true for residue level. +For example in a lysozyme system, residue level we have largest FF and TT matrices because at this level we have the largest number of beads (which is equal to the number of resides) compared to the molecule level (3 beads) and UA level (~10 beads per amino acid). +So insufficient sampling might introduce noise and cause matrix elements to deviate to values that would not reflect the uncorrelated nature of force-force covariance of distantly positioned residues. diff --git a/docs/getting_started.rst b/docs/getting_started.rst index bdc00a9..ef2fd5e 100644 --- a/docs/getting_started.rst +++ b/docs/getting_started.rst @@ -16,7 +16,7 @@ Run the following at the root directory of this repository Input ---------- -For supported format (AMBER NETCDF and GROMACS TRR) you will need to output the **coordinates** and **forces** to the **same file**. +For supported format (any topology and trajectory formats that can be read by `MDAnalysis `_) you will need to output the **coordinates** and **forces** to the **same file**. Units @@ -110,15 +110,11 @@ The top_traj_file argument is necessary to identify your simulation data, the ot - Name of the file where the text format output will be written. - ``outfile.out`` - ``str`` - * - ``--mout`` - - Name of the file where certain matrices will be written. - - ``None`` - - ``str`` * - ``--force_partitioning`` - Factor for partitioning forces when there are weak correlations - ``0.5`` - ``float`` - * - ``--waterEntropy`` + * - ``--water_entropy`` - Use Jas Kalayan's waterEntropy code to calculate the water conformational entropy - ``False`` - ``bool`` @@ -130,7 +126,5 @@ Example .. code-block:: bash # example 1 DNA - CodeEntropy --top_traj_file "Example/data/md_A4_dna.tpr" "Example/data/md_A4_dna_xf.trr" # example 2 lysozyme in water - CodeEntropy --top_traj_file "Example/data/1AKI_prod_60.tpr" "Example/data/1AKI_prod_60.trr" diff --git a/docs/index.rst b/docs/index.rst index 083a7a9..ae1d905 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -16,11 +16,9 @@ This code is a complete and generally applicable set of tools for computing entr getting_started api + science faq community_guide - developer_guide - - Indices and tables ================== diff --git a/docs/science.rst b/docs/science.rst new file mode 100644 index 0000000..eafe701 --- /dev/null +++ b/docs/science.rst @@ -0,0 +1,48 @@ +Multiscale Cell Correlation Theory +============================== + +This section is to describe the scientific theory behind the methods used in CodeEntropy. + +Key References +-------------- + +Vibrational Entropy +------------------- + +Why Forces and Torques? +^^^^^^^^^^^^^^^^^^^^^^^ + +Covarience Matrices +^^^^^^^^^^^^^^^^^^^ +where do they come from + +how are they used + +Heirarchy of Levels +^^^^^^^^^^^^^^^^^^^ +what are the levels + +avoiding double counting + +Axes +^^^^ +why they matter + +how they are defined at each level + +Conformational Entropy +---------------------- + +Defining dihedrals +^^^^^^^^^^^^^^^^^^ +Adaptive method for identifying conformations + +United atom dihedrals + +residue level dihedrals + +From conformation to entropy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Orientational Entropy +--------------------- From 3595d2bc134e58936fda486e7b8a27ced900e7ab Mon Sep 17 00:00:00 2001 From: skfegan Date: Tue, 8 Jul 2025 16:40:29 +0100 Subject: [PATCH 03/24] Adding to the science section of the documentation. --- docs/science.rst | 68 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 57 insertions(+), 11 deletions(-) diff --git a/docs/science.rst b/docs/science.rst index eafe701..87fe4ec 100644 --- a/docs/science.rst +++ b/docs/science.rst @@ -3,12 +3,48 @@ Multiscale Cell Correlation Theory This section is to describe the scientific theory behind the methods used in CodeEntropy. +The multiscale cell correlation (MCC) method [1,2] has been developed in the group of Richard Henchman to calculate entropy from molecular dynamics (MD) simulations. It has been applied to liquids [3], proteins [4], and water [5]. +The purpose of this project is to develop a unified, well written and well tested code that would enable users from any group to calculate the entropy from their simulations using the MCC method. The latest code can be found at github.com/ccpbiosim/codeentropy. + +The method requires forces to be written to the MD trajectory files along with the coordinates. + Key References -------------- +[1] Ulf Hensen, Frauke Grater, and Richard H. Henchman. “Macromolecular +Entropy Can Be Accurately Computed from Force”. In: Journal of Chemi- +cal Theory and Computation 10 (2014), pp. 4777–4781. + +[2] Jonathan Higham et al. “Entropy of Flexible Liquids from Hierarchical +Force-Torque Covariance and Coordination”. In: Molecular Physics 116 +(2018), pp. 1965–1976. + +[3] Hafiz Saqib Ali, Jonathan Higham, and Richard H. Henchman. “Entropy +of Simulated Liquids Using Multiscale Cell Correlation”. In: Entropy 21 +(2019), p. 750. + +[4] Arghya Chakravorty, Jonathan Higham, and Richard H. Henchman. “En- +tropy of Proteins Using Multiscale Cell Correlation”. In: J. Chem. Inf. +Model. 60 (2020), pp. 5540–5551. + +[5] Jas Kalayan et al. “Total Free Energy Analysis of Fully Hydrated Proteins”. +In: Proteins 91 (2023), pp. 74–90. + + +Hierarchy +--------- + +Atoms are grouped into beads. +The levels refer to the size of the beads and the different entropy terms are calculated at each level, taking care to avoid over counting. +This is done at three different levels of the hierarchy - united atom, residues, and polymers. Not all molecules have all the levels of hierarchy, for example water has only the united atom level, benzene would have united atoms and residue, and a protein would have all three levels. Vibrational Entropy ------------------- +The vibrational entropy is calculated using the force covariance matrix for the translational contributions to entropy and using the torque covariance matrix for the rotational contributions. +The eigenvalues of the covariance matrices are use to calculate the frequencies. + +Then the frequencies are used in the quantum harmonic oscillator equation to calculate the vibrational entropy. + Why Forces and Torques? ^^^^^^^^^^^^^^^^^^^^^^^ @@ -18,31 +54,41 @@ where do they come from how are they used -Heirarchy of Levels -^^^^^^^^^^^^^^^^^^^ -what are the levels - -avoiding double counting - Axes ^^^^ -why they matter +It is important that the forces and torques are transformed into local coordinate systems, so that the covariance matrices represent the motions within the molecule not the diffusion of the molecule through the simulation box. The axes for this transformation are calculated for each bead in each time step. + +For the polymer level, the translational and rotational axes are defined as the principal axes of the molecule. + +For the residue level, there are two situations. When the residue is not bonded to any other residues, the translational and rotational axes are defined as the principal axes of the residue. When the residue is part of a larger polymer, the translational axes are defined as the principal axes of the polymer, and the rotational axes are defined from the average position of the bonds to neighbouring residues. -how they are defined at each level +For the united atom level, the translational axes are defined as the principal axes of the residue and the rotational axes are defined from the average position of the bonds to neighbouring heavy atoms. Conformational Entropy ---------------------- +This is a topographical term based on the intramolecular conformational states. + Defining dihedrals ^^^^^^^^^^^^^^^^^^ -Adaptive method for identifying conformations +The united atom level dihedrals are defined as a chemist would expect, but only using the heavy atoms no hydrogens are involved. +The MDAnalysis package is used to find the united atom level dihedrals and calculate all the dihedral values. -United atom dihedrals +For the residue level dihedrals, the bond between the first and second residues and the bond between the third and fourth residues are found. The four atoms at the ends of these two bonds are used as points for the dihedral angle calculation. -residue level dihedrals +For each dihedral, the set of values from the trajectory frames is used to create histograms and identify peaks. Then at each frame, the dihedral is assigned to its nearest peak and a state is created from the peaks of every dihedral in the residue (for united atom level) or molecule (for residue level). From conformation to entropy ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Once the states are defined, the probability of finding the residue or molecule in each state is calculated. +Then the Boltzmann equation is used to calculate the entropy. + Orientational Entropy --------------------- + +This is the second topographical entropy term. +Orientational entropy is the term that comes from the molecule's environment. The different environments are the different states for the molecule, and the statistics can be used to calculate the entropy. +The simplest part is counting the number of neighbours, but symmetry should be accounted for in determining the number of orientations. + +For water, the hydrogen bonds are very important and the number of hydrogen bond donors and acceptors in the shell around the water molecule affects the number of unique orientations. From 3fd28054fc8a7a705af1947753f5449dc7d6729f Mon Sep 17 00:00:00 2001 From: skfegan Date: Fri, 18 Jul 2025 16:02:59 +0100 Subject: [PATCH 04/24] updating quick start guide examples --- ...formationFunctions.assign_conformation.rst | 6 --- ...opy.calculations.ConformationFunctions.rst | 12 ------ ...ntropyFunctions.conformational_entropy.rst | 6 --- ...EntropyFunctions.frequency_calculation.rst | 6 --- ...EntropyFunctions.orientational_entropy.rst | 6 --- ...eEntropy.calculations.EntropyFunctions.rst | 15 -------- ...s.EntropyFunctions.vibrational_entropy.rst | 6 --- ...ns.GeometricFunctions.create_submatrix.rst | 6 --- ...tricFunctions.filter_zero_rows_columns.rst | 6 --- ...lations.GeometricFunctions.get_avg_pos.rst | 6 --- ...lculations.GeometricFunctions.get_axes.rst | 6 --- ...culations.GeometricFunctions.get_beads.rst | 6 --- ...s.GeometricFunctions.get_sphCoord_axes.rst | 6 --- ...GeometricFunctions.get_weighted_forces.rst | 6 --- ...eometricFunctions.get_weighted_torques.rst | 6 --- ...ntropy.calculations.GeometricFunctions.rst | 19 ---------- ...culations.LevelFunctions.get_dihedrals.rst | 6 --- ...lculations.LevelFunctions.get_matrices.rst | 6 --- ...odeEntropy.calculations.LevelFunctions.rst | 14 ------- ...culations.LevelFunctions.select_levels.rst | 6 --- ...Entropy.calculations.MDAUniverseHelper.rst | 15 -------- ...ntropy.calculations.NeighbourFunctions.rst | 12 ------ ...tropy.calculations.UnitsAndConversions.rst | 13 ------- docs/autosummary/CodeEntropy.calculations.rst | 19 ---------- .../CodeEntropy.config.arg_config_manager.rst | 12 ------ .../CodeEntropy.config.data_logger.rst | 12 ------ .../CodeEntropy.config.logging_config.rst | 12 ------ docs/autosummary/CodeEntropy.config.rst | 15 -------- ...formationalEntropy.assign_conformation.rst | 6 +++ ...opy.conformational_entropy_calculation.rst | 6 +++ ...eEntropy.entropy.ConformationalEntropy.rst | 32 ++++++++++++++++ ...Entropy.entropy.EntropyManager.execute.rst | 6 +++ .../CodeEntropy.entropy.EntropyManager.rst | 30 +++++++++++++++ ...deEntropy.entropy.OrientationalEntropy.rst | 31 ++++++++++++++++ ...brationalEntropy.frequency_calculation.rst | 6 +++ ...CodeEntropy.entropy.VibrationalEntropy.rst | 32 ++++++++++++++++ ...ntropy.vibrational_entropy_calculation.rst | 6 +++ ...y.levels.LevelManager.create_submatrix.rst | 6 +++ ....LevelManager.filter_zero_rows_columns.rst | 6 +++ ...ntropy.levels.LevelManager.get_avg_pos.rst | 6 +++ ...deEntropy.levels.LevelManager.get_axes.rst | 6 +++ ...eEntropy.levels.LevelManager.get_beads.rst | 6 +++ ...ropy.levels.LevelManager.get_dihedrals.rst | 6 +++ ...tropy.levels.LevelManager.get_matrices.rst | 6 +++ ...evels.LevelManager.get_weighted_forces.rst | 6 +++ ...vels.LevelManager.get_weighted_torques.rst | 6 +++ .../CodeEntropy.levels.LevelManager.rst | 33 +++++++++++++++++ ...ropy.levels.LevelManager.select_levels.rst | 6 +++ docs/autosummary/CodeEntropy.main.main.rst | 6 +++ ...CodeEntropy.main_mcc.create_job_folder.rst | 6 --- .../autosummary/CodeEntropy.main_mcc.main.rst | 6 --- ...tropy.run.RunManager.create_job_folder.rst | 6 +++ ...tropy.run.RunManager.new_U_select_atom.rst | 6 +++ ...ropy.run.RunManager.new_U_select_frame.rst | 6 +++ .../CodeEntropy.run.RunManager.rst | 37 +++++++++++++++++++ ...py.run.RunManager.run_entropy_workflow.rst | 6 +++ docs/conf.py | 2 +- docs/config.yaml | 14 +++++++ docs/developer_guide.rst | 25 ------------- docs/faq.rst | 2 +- docs/getting_started.rst | 29 ++++++++++++--- docs/science.rst | 18 +++++---- 62 files changed, 366 insertions(+), 317 deletions(-) delete mode 100644 docs/autosummary/CodeEntropy.calculations.ConformationFunctions.assign_conformation.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.ConformationFunctions.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.EntropyFunctions.conformational_entropy.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.EntropyFunctions.frequency_calculation.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.EntropyFunctions.orientational_entropy.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.EntropyFunctions.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.EntropyFunctions.vibrational_entropy.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.create_submatrix.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.filter_zero_rows_columns.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_avg_pos.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_axes.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_beads.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_sphCoord_axes.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_forces.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_torques.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.GeometricFunctions.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_dihedrals.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_matrices.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.LevelFunctions.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.LevelFunctions.select_levels.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.MDAUniverseHelper.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.NeighbourFunctions.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.UnitsAndConversions.rst delete mode 100644 docs/autosummary/CodeEntropy.calculations.rst delete mode 100644 docs/autosummary/CodeEntropy.config.arg_config_manager.rst delete mode 100644 docs/autosummary/CodeEntropy.config.data_logger.rst delete mode 100644 docs/autosummary/CodeEntropy.config.logging_config.rst delete mode 100644 docs/autosummary/CodeEntropy.config.rst create mode 100644 docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.assign_conformation.rst create mode 100644 docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.conformational_entropy_calculation.rst create mode 100644 docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.rst create mode 100644 docs/autosummary/CodeEntropy.entropy.EntropyManager.execute.rst create mode 100644 docs/autosummary/CodeEntropy.entropy.EntropyManager.rst create mode 100644 docs/autosummary/CodeEntropy.entropy.OrientationalEntropy.rst create mode 100644 docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.frequency_calculation.rst create mode 100644 docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.rst create mode 100644 docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.vibrational_entropy_calculation.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.create_submatrix.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.filter_zero_rows_columns.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_avg_pos.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_axes.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_beads.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_dihedrals.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_matrices.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_forces.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_torques.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.select_levels.rst create mode 100644 docs/autosummary/CodeEntropy.main.main.rst delete mode 100644 docs/autosummary/CodeEntropy.main_mcc.create_job_folder.rst delete mode 100644 docs/autosummary/CodeEntropy.main_mcc.main.rst create mode 100644 docs/autosummary/CodeEntropy.run.RunManager.create_job_folder.rst create mode 100644 docs/autosummary/CodeEntropy.run.RunManager.new_U_select_atom.rst create mode 100644 docs/autosummary/CodeEntropy.run.RunManager.new_U_select_frame.rst create mode 100644 docs/autosummary/CodeEntropy.run.RunManager.rst create mode 100644 docs/autosummary/CodeEntropy.run.RunManager.run_entropy_workflow.rst create mode 100644 docs/config.yaml delete mode 100644 docs/developer_guide.rst diff --git a/docs/autosummary/CodeEntropy.calculations.ConformationFunctions.assign_conformation.rst b/docs/autosummary/CodeEntropy.calculations.ConformationFunctions.assign_conformation.rst deleted file mode 100644 index 9879c09..0000000 --- a/docs/autosummary/CodeEntropy.calculations.ConformationFunctions.assign_conformation.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.ConformationFunctions.assign\_conformation -=================================================================== - -.. currentmodule:: CodeEntropy.calculations.ConformationFunctions - -.. autofunction:: assign_conformation \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.ConformationFunctions.rst b/docs/autosummary/CodeEntropy.calculations.ConformationFunctions.rst deleted file mode 100644 index 309d6b4..0000000 --- a/docs/autosummary/CodeEntropy.calculations.ConformationFunctions.rst +++ /dev/null @@ -1,12 +0,0 @@ -CodeEntropy.calculations.ConformationFunctions -============================================== - -.. automodule:: CodeEntropy.calculations.ConformationFunctions - - - .. rubric:: Functions - - .. autosummary:: - - assign_conformation - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.conformational_entropy.rst b/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.conformational_entropy.rst deleted file mode 100644 index 05e9382..0000000 --- a/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.conformational_entropy.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.EntropyFunctions.conformational\_entropy -================================================================= - -.. currentmodule:: CodeEntropy.calculations.EntropyFunctions - -.. autofunction:: conformational_entropy \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.frequency_calculation.rst b/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.frequency_calculation.rst deleted file mode 100644 index b006889..0000000 --- a/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.frequency_calculation.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.EntropyFunctions.frequency\_calculation -================================================================ - -.. currentmodule:: CodeEntropy.calculations.EntropyFunctions - -.. autofunction:: frequency_calculation \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.orientational_entropy.rst b/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.orientational_entropy.rst deleted file mode 100644 index 7605389..0000000 --- a/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.orientational_entropy.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.EntropyFunctions.orientational\_entropy -================================================================ - -.. currentmodule:: CodeEntropy.calculations.EntropyFunctions - -.. autofunction:: orientational_entropy \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.rst b/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.rst deleted file mode 100644 index 40b93c7..0000000 --- a/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.rst +++ /dev/null @@ -1,15 +0,0 @@ -CodeEntropy.calculations.EntropyFunctions -========================================= - -.. automodule:: CodeEntropy.calculations.EntropyFunctions - - - .. rubric:: Functions - - .. autosummary:: - - conformational_entropy - frequency_calculation - orientational_entropy - vibrational_entropy - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.vibrational_entropy.rst b/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.vibrational_entropy.rst deleted file mode 100644 index 917fe89..0000000 --- a/docs/autosummary/CodeEntropy.calculations.EntropyFunctions.vibrational_entropy.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.EntropyFunctions.vibrational\_entropy -============================================================== - -.. currentmodule:: CodeEntropy.calculations.EntropyFunctions - -.. autofunction:: vibrational_entropy \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.create_submatrix.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.create_submatrix.rst deleted file mode 100644 index ed7b4c0..0000000 --- a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.create_submatrix.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.GeometricFunctions.create\_submatrix -============================================================= - -.. currentmodule:: CodeEntropy.calculations.GeometricFunctions - -.. autofunction:: create_submatrix \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.filter_zero_rows_columns.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.filter_zero_rows_columns.rst deleted file mode 100644 index 16efac1..0000000 --- a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.filter_zero_rows_columns.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.GeometricFunctions.filter\_zero\_rows\_columns -======================================================================= - -.. currentmodule:: CodeEntropy.calculations.GeometricFunctions - -.. autofunction:: filter_zero_rows_columns \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_avg_pos.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_avg_pos.rst deleted file mode 100644 index c7cf703..0000000 --- a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_avg_pos.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.GeometricFunctions.get\_avg\_pos -========================================================= - -.. currentmodule:: CodeEntropy.calculations.GeometricFunctions - -.. autofunction:: get_avg_pos \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_axes.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_axes.rst deleted file mode 100644 index b61372e..0000000 --- a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_axes.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.GeometricFunctions.get\_axes -===================================================== - -.. currentmodule:: CodeEntropy.calculations.GeometricFunctions - -.. autofunction:: get_axes \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_beads.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_beads.rst deleted file mode 100644 index ff2a882..0000000 --- a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_beads.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.GeometricFunctions.get\_beads -====================================================== - -.. currentmodule:: CodeEntropy.calculations.GeometricFunctions - -.. autofunction:: get_beads \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_sphCoord_axes.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_sphCoord_axes.rst deleted file mode 100644 index 0dcec21..0000000 --- a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_sphCoord_axes.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.GeometricFunctions.get\_sphCoord\_axes -=============================================================== - -.. currentmodule:: CodeEntropy.calculations.GeometricFunctions - -.. autofunction:: get_sphCoord_axes \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_forces.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_forces.rst deleted file mode 100644 index e0675ba..0000000 --- a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_forces.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.GeometricFunctions.get\_weighted\_forces -================================================================= - -.. currentmodule:: CodeEntropy.calculations.GeometricFunctions - -.. autofunction:: get_weighted_forces \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_torques.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_torques.rst deleted file mode 100644 index f0712de..0000000 --- a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.get_weighted_torques.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.GeometricFunctions.get\_weighted\_torques -================================================================== - -.. currentmodule:: CodeEntropy.calculations.GeometricFunctions - -.. autofunction:: get_weighted_torques \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.rst b/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.rst deleted file mode 100644 index fd0c8d8..0000000 --- a/docs/autosummary/CodeEntropy.calculations.GeometricFunctions.rst +++ /dev/null @@ -1,19 +0,0 @@ -CodeEntropy.calculations.GeometricFunctions -=========================================== - -.. automodule:: CodeEntropy.calculations.GeometricFunctions - - - .. rubric:: Functions - - .. autosummary:: - - create_submatrix - filter_zero_rows_columns - get_avg_pos - get_axes - get_beads - get_sphCoord_axes - get_weighted_forces - get_weighted_torques - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_dihedrals.rst b/docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_dihedrals.rst deleted file mode 100644 index 139db04..0000000 --- a/docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_dihedrals.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.LevelFunctions.get\_dihedrals -====================================================== - -.. currentmodule:: CodeEntropy.calculations.LevelFunctions - -.. autofunction:: get_dihedrals \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_matrices.rst b/docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_matrices.rst deleted file mode 100644 index 7291dec..0000000 --- a/docs/autosummary/CodeEntropy.calculations.LevelFunctions.get_matrices.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.LevelFunctions.get\_matrices -===================================================== - -.. currentmodule:: CodeEntropy.calculations.LevelFunctions - -.. autofunction:: get_matrices \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.LevelFunctions.rst b/docs/autosummary/CodeEntropy.calculations.LevelFunctions.rst deleted file mode 100644 index 2e5223e..0000000 --- a/docs/autosummary/CodeEntropy.calculations.LevelFunctions.rst +++ /dev/null @@ -1,14 +0,0 @@ -CodeEntropy.calculations.LevelFunctions -======================================= - -.. automodule:: CodeEntropy.calculations.LevelFunctions - - - .. rubric:: Functions - - .. autosummary:: - - get_dihedrals - get_matrices - select_levels - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.LevelFunctions.select_levels.rst b/docs/autosummary/CodeEntropy.calculations.LevelFunctions.select_levels.rst deleted file mode 100644 index 98f9a27..0000000 --- a/docs/autosummary/CodeEntropy.calculations.LevelFunctions.select_levels.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.calculations.LevelFunctions.select\_levels -====================================================== - -.. currentmodule:: CodeEntropy.calculations.LevelFunctions - -.. autofunction:: select_levels \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.MDAUniverseHelper.rst b/docs/autosummary/CodeEntropy.calculations.MDAUniverseHelper.rst deleted file mode 100644 index 93a2898..0000000 --- a/docs/autosummary/CodeEntropy.calculations.MDAUniverseHelper.rst +++ /dev/null @@ -1,15 +0,0 @@ -CodeEntropy.calculations.MDAUniverseHelper -========================================== - -.. automodule:: CodeEntropy.calculations.MDAUniverseHelper - - - .. rubric:: Functions - - .. autosummary:: - - new_U_select_atom - new_U_select_frame - read_universe - write_universe - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.NeighbourFunctions.rst b/docs/autosummary/CodeEntropy.calculations.NeighbourFunctions.rst deleted file mode 100644 index 1ee52dc..0000000 --- a/docs/autosummary/CodeEntropy.calculations.NeighbourFunctions.rst +++ /dev/null @@ -1,12 +0,0 @@ -CodeEntropy.calculations.NeighbourFunctions -=========================================== - -.. automodule:: CodeEntropy.calculations.NeighbourFunctions - - - .. rubric:: Functions - - .. autosummary:: - - get_neighbours - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.UnitsAndConversions.rst b/docs/autosummary/CodeEntropy.calculations.UnitsAndConversions.rst deleted file mode 100644 index 5a128e9..0000000 --- a/docs/autosummary/CodeEntropy.calculations.UnitsAndConversions.rst +++ /dev/null @@ -1,13 +0,0 @@ -CodeEntropy.calculations.UnitsAndConversions -============================================ - -.. automodule:: CodeEntropy.calculations.UnitsAndConversions - - - .. rubric:: Functions - - .. autosummary:: - - change_lambda_units - get_KT2J - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.calculations.rst b/docs/autosummary/CodeEntropy.calculations.rst deleted file mode 100644 index a028774..0000000 --- a/docs/autosummary/CodeEntropy.calculations.rst +++ /dev/null @@ -1,19 +0,0 @@ -CodeEntropy.calculations -======================== - -.. automodule:: CodeEntropy.calculations - - -.. rubric:: Modules - -.. autosummary:: - :toctree: - :recursive: - - ConformationFunctions - EntropyFunctions - GeometricFunctions - LevelFunctions - MDAUniverseHelper - NeighbourFunctions - UnitsAndConversions diff --git a/docs/autosummary/CodeEntropy.config.arg_config_manager.rst b/docs/autosummary/CodeEntropy.config.arg_config_manager.rst deleted file mode 100644 index 20f5c4d..0000000 --- a/docs/autosummary/CodeEntropy.config.arg_config_manager.rst +++ /dev/null @@ -1,12 +0,0 @@ -CodeEntropy.config.arg\_config\_manager -======================================= - -.. automodule:: CodeEntropy.config.arg_config_manager - - - .. rubric:: Classes - - .. autosummary:: - - ConfigManager - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.config.data_logger.rst b/docs/autosummary/CodeEntropy.config.data_logger.rst deleted file mode 100644 index 97310d7..0000000 --- a/docs/autosummary/CodeEntropy.config.data_logger.rst +++ /dev/null @@ -1,12 +0,0 @@ -CodeEntropy.config.data\_logger -=============================== - -.. automodule:: CodeEntropy.config.data_logger - - - .. rubric:: Classes - - .. autosummary:: - - DataLogger - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.config.logging_config.rst b/docs/autosummary/CodeEntropy.config.logging_config.rst deleted file mode 100644 index 3ee117f..0000000 --- a/docs/autosummary/CodeEntropy.config.logging_config.rst +++ /dev/null @@ -1,12 +0,0 @@ -CodeEntropy.config.logging\_config -================================== - -.. automodule:: CodeEntropy.config.logging_config - - - .. rubric:: Classes - - .. autosummary:: - - LoggingConfig - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.config.rst b/docs/autosummary/CodeEntropy.config.rst deleted file mode 100644 index 9489f46..0000000 --- a/docs/autosummary/CodeEntropy.config.rst +++ /dev/null @@ -1,15 +0,0 @@ -CodeEntropy.config -================== - -.. automodule:: CodeEntropy.config - - -.. rubric:: Modules - -.. autosummary:: - :toctree: - :recursive: - - arg_config_manager - data_logger - logging_config diff --git a/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.assign_conformation.rst b/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.assign_conformation.rst new file mode 100644 index 0000000..11f405c --- /dev/null +++ b/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.assign_conformation.rst @@ -0,0 +1,6 @@ +CodeEntropy.entropy.ConformationalEntropy.assign\_conformation +============================================================== + +.. currentmodule:: CodeEntropy.entropy + +.. automethod:: ConformationalEntropy.assign_conformation \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.conformational_entropy_calculation.rst b/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.conformational_entropy_calculation.rst new file mode 100644 index 0000000..338a3a8 --- /dev/null +++ b/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.conformational_entropy_calculation.rst @@ -0,0 +1,6 @@ +CodeEntropy.entropy.ConformationalEntropy.conformational\_entropy\_calculation +============================================================================== + +.. currentmodule:: CodeEntropy.entropy + +.. automethod:: ConformationalEntropy.conformational_entropy_calculation \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.rst b/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.rst new file mode 100644 index 0000000..9efd36d --- /dev/null +++ b/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.rst @@ -0,0 +1,32 @@ +CodeEntropy.entropy.ConformationalEntropy +========================================= + +.. currentmodule:: CodeEntropy.entropy + +.. autoclass:: ConformationalEntropy + + + .. automethod:: __init__ + + + .. rubric:: Methods + + .. autosummary:: + + ~ConformationalEntropy.__init__ + ~ConformationalEntropy.assign_conformation + ~ConformationalEntropy.conformational_entropy_calculation + ~ConformationalEntropy.execute + + + + + + .. rubric:: Attributes + + .. autosummary:: + + ~ConformationalEntropy.residue_results_df + ~ConformationalEntropy.results_df + + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.EntropyManager.execute.rst b/docs/autosummary/CodeEntropy.entropy.EntropyManager.execute.rst new file mode 100644 index 0000000..bb0fad0 --- /dev/null +++ b/docs/autosummary/CodeEntropy.entropy.EntropyManager.execute.rst @@ -0,0 +1,6 @@ +CodeEntropy.entropy.EntropyManager.execute +========================================== + +.. currentmodule:: CodeEntropy.entropy + +.. automethod:: EntropyManager.execute \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.EntropyManager.rst b/docs/autosummary/CodeEntropy.entropy.EntropyManager.rst new file mode 100644 index 0000000..111dafa --- /dev/null +++ b/docs/autosummary/CodeEntropy.entropy.EntropyManager.rst @@ -0,0 +1,30 @@ +CodeEntropy.entropy.EntropyManager +================================== + +.. currentmodule:: CodeEntropy.entropy + +.. autoclass:: EntropyManager + + + .. automethod:: __init__ + + + .. rubric:: Methods + + .. autosummary:: + + ~EntropyManager.__init__ + ~EntropyManager.execute + + + + + + .. rubric:: Attributes + + .. autosummary:: + + ~EntropyManager.residue_results_df + ~EntropyManager.results_df + + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.OrientationalEntropy.rst b/docs/autosummary/CodeEntropy.entropy.OrientationalEntropy.rst new file mode 100644 index 0000000..24cae01 --- /dev/null +++ b/docs/autosummary/CodeEntropy.entropy.OrientationalEntropy.rst @@ -0,0 +1,31 @@ +CodeEntropy.entropy.OrientationalEntropy +======================================== + +.. currentmodule:: CodeEntropy.entropy + +.. autoclass:: OrientationalEntropy + + + .. automethod:: __init__ + + + .. rubric:: Methods + + .. autosummary:: + + ~OrientationalEntropy.__init__ + ~OrientationalEntropy.execute + ~OrientationalEntropy.orientational_entropy_calculation + + + + + + .. rubric:: Attributes + + .. autosummary:: + + ~OrientationalEntropy.residue_results_df + ~OrientationalEntropy.results_df + + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.frequency_calculation.rst b/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.frequency_calculation.rst new file mode 100644 index 0000000..6cc259d --- /dev/null +++ b/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.frequency_calculation.rst @@ -0,0 +1,6 @@ +CodeEntropy.entropy.VibrationalEntropy.frequency\_calculation +============================================================= + +.. currentmodule:: CodeEntropy.entropy + +.. automethod:: VibrationalEntropy.frequency_calculation \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.rst b/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.rst new file mode 100644 index 0000000..80535ad --- /dev/null +++ b/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.rst @@ -0,0 +1,32 @@ +CodeEntropy.entropy.VibrationalEntropy +====================================== + +.. currentmodule:: CodeEntropy.entropy + +.. autoclass:: VibrationalEntropy + + + .. automethod:: __init__ + + + .. rubric:: Methods + + .. autosummary:: + + ~VibrationalEntropy.__init__ + ~VibrationalEntropy.execute + ~VibrationalEntropy.frequency_calculation + ~VibrationalEntropy.vibrational_entropy_calculation + + + + + + .. rubric:: Attributes + + .. autosummary:: + + ~VibrationalEntropy.residue_results_df + ~VibrationalEntropy.results_df + + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.vibrational_entropy_calculation.rst b/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.vibrational_entropy_calculation.rst new file mode 100644 index 0000000..423b3c9 --- /dev/null +++ b/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.vibrational_entropy_calculation.rst @@ -0,0 +1,6 @@ +CodeEntropy.entropy.VibrationalEntropy.vibrational\_entropy\_calculation +======================================================================== + +.. currentmodule:: CodeEntropy.entropy + +.. automethod:: VibrationalEntropy.vibrational_entropy_calculation \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.create_submatrix.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.create_submatrix.rst new file mode 100644 index 0000000..248257e --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.create_submatrix.rst @@ -0,0 +1,6 @@ +CodeEntropy.levels.LevelManager.create\_submatrix +================================================= + +.. currentmodule:: CodeEntropy.levels + +.. automethod:: LevelManager.create_submatrix \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.filter_zero_rows_columns.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.filter_zero_rows_columns.rst new file mode 100644 index 0000000..ca72456 --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.filter_zero_rows_columns.rst @@ -0,0 +1,6 @@ +CodeEntropy.levels.LevelManager.filter\_zero\_rows\_columns +=========================================================== + +.. currentmodule:: CodeEntropy.levels + +.. automethod:: LevelManager.filter_zero_rows_columns \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_avg_pos.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_avg_pos.rst new file mode 100644 index 0000000..b22069b --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.get_avg_pos.rst @@ -0,0 +1,6 @@ +CodeEntropy.levels.LevelManager.get\_avg\_pos +============================================= + +.. currentmodule:: CodeEntropy.levels + +.. automethod:: LevelManager.get_avg_pos \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_axes.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_axes.rst new file mode 100644 index 0000000..66ba179 --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.get_axes.rst @@ -0,0 +1,6 @@ +CodeEntropy.levels.LevelManager.get\_axes +========================================= + +.. currentmodule:: CodeEntropy.levels + +.. automethod:: LevelManager.get_axes \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_beads.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_beads.rst new file mode 100644 index 0000000..1ef4091 --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.get_beads.rst @@ -0,0 +1,6 @@ +CodeEntropy.levels.LevelManager.get\_beads +========================================== + +.. currentmodule:: CodeEntropy.levels + +.. automethod:: LevelManager.get_beads \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_dihedrals.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_dihedrals.rst new file mode 100644 index 0000000..f3e4149 --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.get_dihedrals.rst @@ -0,0 +1,6 @@ +CodeEntropy.levels.LevelManager.get\_dihedrals +============================================== + +.. currentmodule:: CodeEntropy.levels + +.. automethod:: LevelManager.get_dihedrals \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_matrices.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_matrices.rst new file mode 100644 index 0000000..f2236ce --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.get_matrices.rst @@ -0,0 +1,6 @@ +CodeEntropy.levels.LevelManager.get\_matrices +============================================= + +.. currentmodule:: CodeEntropy.levels + +.. automethod:: LevelManager.get_matrices \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_forces.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_forces.rst new file mode 100644 index 0000000..001d0a4 --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_forces.rst @@ -0,0 +1,6 @@ +CodeEntropy.levels.LevelManager.get\_weighted\_forces +===================================================== + +.. currentmodule:: CodeEntropy.levels + +.. automethod:: LevelManager.get_weighted_forces \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_torques.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_torques.rst new file mode 100644 index 0000000..d9b0be3 --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_torques.rst @@ -0,0 +1,6 @@ +CodeEntropy.levels.LevelManager.get\_weighted\_torques +====================================================== + +.. currentmodule:: CodeEntropy.levels + +.. automethod:: LevelManager.get_weighted_torques \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.rst new file mode 100644 index 0000000..e02556b --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.rst @@ -0,0 +1,33 @@ +CodeEntropy.levels.LevelManager +=============================== + +.. currentmodule:: CodeEntropy.levels + +.. autoclass:: LevelManager + + + .. automethod:: __init__ + + + .. rubric:: Methods + + .. autosummary:: + + ~LevelManager.__init__ + ~LevelManager.create_submatrix + ~LevelManager.filter_zero_rows_columns + ~LevelManager.get_avg_pos + ~LevelManager.get_axes + ~LevelManager.get_beads + ~LevelManager.get_dihedrals + ~LevelManager.get_matrices + ~LevelManager.get_sphCoord_axes + ~LevelManager.get_weighted_forces + ~LevelManager.get_weighted_torques + ~LevelManager.select_levels + + + + + + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.select_levels.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.select_levels.rst new file mode 100644 index 0000000..4a2a03b --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.select_levels.rst @@ -0,0 +1,6 @@ +CodeEntropy.levels.LevelManager.select\_levels +============================================== + +.. currentmodule:: CodeEntropy.levels + +.. automethod:: LevelManager.select_levels \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.main.main.rst b/docs/autosummary/CodeEntropy.main.main.rst new file mode 100644 index 0000000..4f03f70 --- /dev/null +++ b/docs/autosummary/CodeEntropy.main.main.rst @@ -0,0 +1,6 @@ +CodeEntropy.main.main +===================== + +.. currentmodule:: CodeEntropy.main + +.. autofunction:: main \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.main_mcc.create_job_folder.rst b/docs/autosummary/CodeEntropy.main_mcc.create_job_folder.rst deleted file mode 100644 index ff5d529..0000000 --- a/docs/autosummary/CodeEntropy.main_mcc.create_job_folder.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.main\_mcc.create\_job\_folder -========================================= - -.. currentmodule:: CodeEntropy.main_mcc - -.. autofunction:: create_job_folder \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.main_mcc.main.rst b/docs/autosummary/CodeEntropy.main_mcc.main.rst deleted file mode 100644 index 1ae4542..0000000 --- a/docs/autosummary/CodeEntropy.main_mcc.main.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.main\_mcc.main -========================== - -.. currentmodule:: CodeEntropy.main_mcc - -.. autofunction:: main \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.run.RunManager.create_job_folder.rst b/docs/autosummary/CodeEntropy.run.RunManager.create_job_folder.rst new file mode 100644 index 0000000..32df84b --- /dev/null +++ b/docs/autosummary/CodeEntropy.run.RunManager.create_job_folder.rst @@ -0,0 +1,6 @@ +CodeEntropy.run.RunManager.create\_job\_folder +============================================== + +.. currentmodule:: CodeEntropy.run + +.. automethod:: RunManager.create_job_folder \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.run.RunManager.new_U_select_atom.rst b/docs/autosummary/CodeEntropy.run.RunManager.new_U_select_atom.rst new file mode 100644 index 0000000..74169dc --- /dev/null +++ b/docs/autosummary/CodeEntropy.run.RunManager.new_U_select_atom.rst @@ -0,0 +1,6 @@ +CodeEntropy.run.RunManager.new\_U\_select\_atom +=============================================== + +.. currentmodule:: CodeEntropy.run + +.. automethod:: RunManager.new_U_select_atom \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.run.RunManager.new_U_select_frame.rst b/docs/autosummary/CodeEntropy.run.RunManager.new_U_select_frame.rst new file mode 100644 index 0000000..7cdcad2 --- /dev/null +++ b/docs/autosummary/CodeEntropy.run.RunManager.new_U_select_frame.rst @@ -0,0 +1,6 @@ +CodeEntropy.run.RunManager.new\_U\_select\_frame +================================================ + +.. currentmodule:: CodeEntropy.run + +.. automethod:: RunManager.new_U_select_frame \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.run.RunManager.rst b/docs/autosummary/CodeEntropy.run.RunManager.rst new file mode 100644 index 0000000..b9c2524 --- /dev/null +++ b/docs/autosummary/CodeEntropy.run.RunManager.rst @@ -0,0 +1,37 @@ +CodeEntropy.run.RunManager +========================== + +.. currentmodule:: CodeEntropy.run + +.. autoclass:: RunManager + + + .. automethod:: __init__ + + + .. rubric:: Methods + + .. autosummary:: + + ~RunManager.__init__ + ~RunManager.change_lambda_units + ~RunManager.create_job_folder + ~RunManager.get_KT2J + ~RunManager.new_U_select_atom + ~RunManager.new_U_select_frame + ~RunManager.read_universe + ~RunManager.run_entropy_workflow + ~RunManager.write_universe + + + + + + .. rubric:: Attributes + + .. autosummary:: + + ~RunManager.DEF_TEMPER + ~RunManager.N_AVOGADRO + + \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.run.RunManager.run_entropy_workflow.rst b/docs/autosummary/CodeEntropy.run.RunManager.run_entropy_workflow.rst new file mode 100644 index 0000000..03b893c --- /dev/null +++ b/docs/autosummary/CodeEntropy.run.RunManager.run_entropy_workflow.rst @@ -0,0 +1,6 @@ +CodeEntropy.run.RunManager.run\_entropy\_workflow +================================================= + +.. currentmodule:: CodeEntropy.run + +.. automethod:: RunManager.run_entropy_workflow \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 953edfa..7856f74 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -77,7 +77,7 @@ # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = en +language = "en" # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. diff --git a/docs/config.yaml b/docs/config.yaml new file mode 100644 index 0000000..2da8420 --- /dev/null +++ b/docs/config.yaml @@ -0,0 +1,14 @@ +--- + +run1: + top_traj_file: ["1AKI_prod.tpr", "1AKI_prod.trr"] + selection_string: 'not water' + start: 0 + end: 500 + step: 1 + bin_width: 30 + temperature: 300 + verbose: True + thread: + force_partitioning: 0.5 + water_entropy: False diff --git a/docs/developer_guide.rst b/docs/developer_guide.rst deleted file mode 100644 index c83cab0..0000000 --- a/docs/developer_guide.rst +++ /dev/null @@ -1,25 +0,0 @@ -Developer's Guide -============================== - -CodeEntropy uses the Python programming language. - -Running tests ------------------------------ -To run the full test suite, simply install ``pytest`` and run in root directory of the repository: - -.. code-block:: bash - - pytest - -To only run the unit tests in a particular part of program. For example only running test for solute part. - -.. code-block:: bash - - pytest CodeEntropy/tests/test_CodeEntropy.py - - -To only run the a specific test. e.g. - -.. code-block:: bash - - pytest CodeEntropy/tests/test_CodeEntropy.py::test_CodeEntropy_parser_labForces \ No newline at end of file diff --git a/docs/faq.rst b/docs/faq.rst index 187df3d..1323761 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -5,5 +5,5 @@ Why do I get ``nan`` or complex number result? -------------------------------------------------- Try increasing the sampling time. This is especially true for residue level. -For example in a lysozyme system, residue level we have largest FF and TT matrices because at this level we have the largest number of beads (which is equal to the number of resides) compared to the molecule level (3 beads) and UA level (~10 beads per amino acid). +For example in a lysozyme system, residue level we have largest force and torque covariance matrices because at this level we have the largest number of beads (which is equal to the number of resides) compared to the molecule level (3 beads) and UA level (~10 beads per amino acid). So insufficient sampling might introduce noise and cause matrix elements to deviate to values that would not reflect the uncorrelated nature of force-force covariance of distantly positioned residues. diff --git a/docs/getting_started.rst b/docs/getting_started.rst index ef2fd5e..f96b84f 100644 --- a/docs/getting_started.rst +++ b/docs/getting_started.rst @@ -53,7 +53,7 @@ For help ^^^^^^^^^^^ .. code-block:: bash - CodeEntropy -h + CodeEntropy --help Arguments ^^^^^^^^^^^^^ @@ -120,11 +120,30 @@ The top_traj_file argument is necessary to identify your simulation data, the ot - ``bool`` -Example +Example #1 ^^^^^^^^^^ +Example config.yaml file. + +.. literalinclude:: config.yaml + +You must specify the location of the topology/trajectory file(s) for the top_traj_file variable as there is no default and CodeEntropy cannot run without the data. The temperature variable should be adjusted to the temperature from the simulation. Changing the force_partitioning variable is possible, but not recommended unless you understand what it does and have a good reason to change it. + +If you set end to -1, it will stop at the last frame of the trajectory. So, start = 0, end = -1, and step = 1 will use the whole trajectory. + +To run CodeEntropy, you want to use the command line and change into the directory where your config.yaml file is located. As long as the file is named config.yaml, CodeEntropy will find it automatically. .. code-block:: bash - - # example 1 DNA - # example 2 lysozyme in water + CodeEntropy + +Example #2 +^^^^^^^^^^ +To use the same settings as in Example #1, but override trajectory information, you can use the command line flags. + +.. code-block:: bash + + CodeEntropy --top_traj_file "md_A4_dna.tpr" "md_A4_dna_xf.trr" + +Or as an alternative, you could edit the config.yaml file and use the CodeEntropy command as in the first example. + +CodeEntropy creates job* directories for the output, where * is a job number choosen by the so that there are sequentially numbered directories when you rerun CodeEntropy in the same working directory. diff --git a/docs/science.rst b/docs/science.rst index 87fe4ec..38fa495 100644 --- a/docs/science.rst +++ b/docs/science.rst @@ -1,5 +1,5 @@ Multiscale Cell Correlation Theory -============================== +================================== This section is to describe the scientific theory behind the methods used in CodeEntropy. @@ -42,17 +42,18 @@ Vibrational Entropy The vibrational entropy is calculated using the force covariance matrix for the translational contributions to entropy and using the torque covariance matrix for the rotational contributions. The eigenvalues of the covariance matrices are use to calculate the frequencies. - + +.. math:: + \nu_i = \frac{1}{2\pi} \sqrt{\frac{\lambda_i}{k_BT}} + Then the frequencies are used in the quantum harmonic oscillator equation to calculate the vibrational entropy. +.. math:: + S_{\mathrm{vib}} = k_B \sum_{i=1}^{3N} \left( \frac{\hbar\nu_i/k_BT}{e^{\hbar\nu_i/k_BT}-1} - \ln\left(1-e^{-\hbar\nu_i/k_BT}\right)\right) + Why Forces and Torques? ^^^^^^^^^^^^^^^^^^^^^^^ -Covarience Matrices -^^^^^^^^^^^^^^^^^^^ -where do they come from - -how are they used Axes ^^^^ @@ -84,6 +85,9 @@ From conformation to entropy Once the states are defined, the probability of finding the residue or molecule in each state is calculated. Then the Boltzmann equation is used to calculate the entropy. +.. math:: + S_{\mathrm{conf}} = - k_B \sum_{i=1}^{N_{\mathrm{conf}}}p_i\ln{p_i} + Orientational Entropy --------------------- From 4b13589fae4b16f126a76272bb4d764503ce0be8 Mon Sep 17 00:00:00 2001 From: skfegan Date: Fri, 15 Aug 2025 15:04:48 +0100 Subject: [PATCH 05/24] updating input arguments in docs --- docs/community_guide.rst | 8 ++++---- docs/config.yaml | 4 ++-- docs/getting_started.rst | 13 +++++++------ 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/docs/community_guide.rst b/docs/community_guide.rst index 69299dd..2bef6d2 100644 --- a/docs/community_guide.rst +++ b/docs/community_guide.rst @@ -26,15 +26,15 @@ To run the full test suite, simply install ``pytest`` and run in root directory pytest -To only run the unit tests in a particular part of program. For example only running test for solute part. +To only run the unit tests in a particular part of program, for example only running tests for the levels functions: .. code-block:: bash - pytest CodeEntropy/tests/test_CodeEntropy.py + pytest CodeEntropy/tests/test_CodeEntropy/test_levels.py -To only run the a specific test. e.g. +To only run the a specific test, e.g.: .. code-block:: bash - pytest CodeEntropy/tests/test_CodeEntropy.py::test_CodeEntropy_parser_labForces + pytest CodeEntropy/tests/test_CodeEntropy/test_levels.py::test_select_levels diff --git a/docs/config.yaml b/docs/config.yaml index 2da8420..44fbb3e 100644 --- a/docs/config.yaml +++ b/docs/config.yaml @@ -2,13 +2,13 @@ run1: top_traj_file: ["1AKI_prod.tpr", "1AKI_prod.trr"] - selection_string: 'not water' + selection_string: 'all' start: 0 end: 500 step: 1 bin_width: 30 temperature: 300 verbose: True - thread: force_partitioning: 0.5 water_entropy: False + grouping: 'molecules' diff --git a/docs/getting_started.rst b/docs/getting_started.rst index f96b84f..864e4c7 100644 --- a/docs/getting_started.rst +++ b/docs/getting_started.rst @@ -71,8 +71,8 @@ The top_traj_file argument is necessary to identify your simulation data, the ot - Default - Type * - ``--top_traj_file`` - - Path to Structure/topology file(``AMBER PRMTOP``, ``GROMACS TPR`` or topology file with MDAnalysis readable dihedral information (not officially supported)) followed by Trajectory file(s) (``GROMAC TRR`` or ``AMBER NETCDF``) You will need to output the **coordinates** and **forces** to the **same file** . - - Required + - Path to Structure/topology file followed by Trajectory file(s). Any MDAnalysis readable files should work (for example ``GROMACS TPR and TRR`` or ``AMBER PRMTOP and NETCDF``). You will need to output the **coordinates** and **forces** to the **same file** . + - Required, no default value - list of ``str`` * - ``--selection_string`` - Selection string for CodeEntropy such as protein or resid, refer to ``MDAnalysis.select_atoms`` for more information. @@ -102,10 +102,6 @@ The top_traj_file argument is necessary to identify your simulation data, the ot - Enable verbose output - ``False`` - ``bool`` - * - ``--thread`` - - How many multiprocess to use. - - ``1``: for single core execution - - ``int`` * - ``--outfile`` - Name of the file where the text format output will be written. - ``outfile.out`` @@ -118,6 +114,10 @@ The top_traj_file argument is necessary to identify your simulation data, the ot - Use Jas Kalayan's waterEntropy code to calculate the water conformational entropy - ``False`` - ``bool`` + * - ``--grouping`` + - How to group molecules for averaging + - ``molecules`` + - ``str`` Example #1 @@ -147,3 +147,4 @@ To use the same settings as in Example #1, but override trajectory information, Or as an alternative, you could edit the config.yaml file and use the CodeEntropy command as in the first example. CodeEntropy creates job* directories for the output, where * is a job number choosen by the so that there are sequentially numbered directories when you rerun CodeEntropy in the same working directory. +Each job* directory contains the output json file and a subdirectory with the log files. From faa4275932273ca4efd2f3ef2c8a5c43033dc1de Mon Sep 17 00:00:00 2001 From: skfegan Date: Tue, 19 Aug 2025 11:12:01 +0100 Subject: [PATCH 06/24] doc strings and comments --- CodeEntropy/entropy.py | 177 ++++++++++++----- CodeEntropy/group_molecules.py | 43 +++-- CodeEntropy/levels.py | 179 ++++++++++-------- docs/api.rst | 12 +- ...eEntropy.entropy.ConformationalEntropy.rst | 7 - .../CodeEntropy.entropy.EntropyManager.rst | 7 - ...deEntropy.entropy.OrientationalEntropy.rst | 31 --- ...CodeEntropy.entropy.VibrationalEntropy.rst | 7 - ...velManager.build_conformational_states.rst | 6 + ...LevelManager.build_covariance_matrices.rst | 6 + ...Manager.compute_dihedral_conformations.rst | 6 + ....levels.LevelManager.get_sphCoord_axes.rst | 6 + .../CodeEntropy.levels.LevelManager.rst | 4 + ...elManager.update_force_torque_matrices.rst | 6 + docs/community_guide.rst | 10 +- 15 files changed, 301 insertions(+), 206 deletions(-) delete mode 100644 docs/autosummary/CodeEntropy.entropy.OrientationalEntropy.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.build_conformational_states.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.build_covariance_matrices.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.compute_dihedral_conformations.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_sphCoord_axes.rst create mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.update_force_torque_matrices.rst diff --git a/CodeEntropy/entropy.py b/CodeEntropy/entropy.py index e3bf58e..b00cf7e 100644 --- a/CodeEntropy/entropy.py +++ b/CodeEntropy/entropy.py @@ -28,6 +28,7 @@ def __init__( universe: MDAnalysis universe representing the simulation system. data_logger: Logger for storing and exporting entropy data. level_manager: Provides level-specific data such as matrices and dihedrals. + group_molecules: includes the grouping functions for averaging over molecules. """ self._run_manager = run_manager self._args = args @@ -48,6 +49,7 @@ def execute(self): - Computing vibrational and conformational entropies. - Finalizing and logging results. """ + # Set up initial information start, end, step = self._get_trajectory_bounds() number_frames = self._get_number_frames(start, end, step) ve = VibrationalEntropy( @@ -67,9 +69,15 @@ def execute(self): self._group_molecules, ) + # If requested use WaterEntropy self._handle_water_entropy(start, end, step) + + # Create the reduced atom MDAnalysis universe and find levels + # Group molecules for averaging reduced_atom, number_molecules, levels, groups = self._initialize_molecules() + # Build force and torque covariance matrices for the vibrational + # entropy calculations force_matrices, torque_matrices = self._level_manager.build_covariance_matrices( self, reduced_atom, @@ -81,6 +89,8 @@ def execute(self): number_frames, ) + # Identify the conformational states from dihedral angles for the + # conformational entropy calculations states_ua, states_res = self._level_manager.build_conformational_states( self, reduced_atom, @@ -94,6 +104,7 @@ def execute(self): ce, ) + # Complete the entropy calculations self._compute_entropies( reduced_atom, levels, @@ -107,6 +118,7 @@ def execute(self): ce, ) + # Print the results in a nicely formated way self._finalize_molecule_results() self._data_logger.log_tables() @@ -123,14 +135,22 @@ def _handle_water_entropy(self, start, end, step): end (int): End frame index. step (int): Step size for frame iteration. """ + # Check if the system contains water molecules has_water = self._universe.select_atoms("water").n_atoms > 0 + + # If there is water and using waterEntropy is requested if has_water and self._args.water_entropy: + # Calculate the types of entropy for the water molecules self._calculate_water_entropy(self._universe, start, end, step) + + # Update the selection string so the entropy of the water + # is not calculated twice self._args.selection_string = ( self._args.selection_string + " and not water" if self._args.selection_string != "all" else "not water" ) + logger.debug( "WaterEntropy: molecule_data: %s", self._data_logger.molecule_data ) @@ -147,9 +167,15 @@ def _initialize_molecules(self): - reduced_atom (Universe): The reduced atom selection. - number_molecules (int): Number of molecules in the system. - levels (list): List of entropy levels per molecule. + - groups (dict): Groups for averaging over molecules. """ + # Based on the selection string, create a new MDAnalysis universe reduced_atom = self._get_reduced_universe() + + # Count the molecules and identify the length scale levels for each one number_molecules, levels = self._level_manager.select_levels(reduced_atom) + + # Group the molecules for averaging grouping = self._args.grouping groups = self._group_molecules.grouping_molecules(reduced_atom, grouping) @@ -182,19 +208,27 @@ def _compute_entropies( Parameters: reduced_atom (Universe): The reduced atom selection from the trajectory. - number_molecules (int): Number of molecules in the system. levels (list): List of entropy levels per molecule. + groups (dict): Groups for averaging over molecules. force_matrices (dict): Precomputed force covariance matrices. torque_matrices (dict): Precomputed torque covariance matrices. states_ua (dict): Dictionary to store united-atom conformational states. states_res (list): List to store residue-level conformational states. number_frames (int): Total number of trajectory frames to process. + ve: Vibrational Entropy object + ce: Conformational Entropy object """ + # Loop over groups, so the entropy is calculated once for each type + # of molecule for group_id in groups.keys(): mol = self._get_molecule_container(reduced_atom, groups[group_id][0]) for level in levels[groups[group_id][0]]: + # Identify if the current level is the highest (largest bead + # size) level for the molecule type highest = level == levels[groups[group_id][0]][-1] + # Calculate the vibrational and conformational entropy for + # the united atom level if level == "united_atom": self._process_united_atom_entropy( group_id, @@ -209,10 +243,11 @@ def _compute_entropies( number_frames, ) + # Calculate the vibrational then conformational entropy + # for the residue level elif level == "residue": self._process_vibrational_entropy( group_id, - number_frames, ve, level, force_matrices["res"][group_id], @@ -228,10 +263,13 @@ def _compute_entropies( number_frames, ) + # Calculate the vibrational entropy for the polymer level + # There is no conformational entropy for the polymer level + # because there is only one polymer bead so no dihedral + # angles exist elif level == "polymer": self._process_vibrational_entropy( group_id, - number_frames, ve, level, force_matrices["poly"][group_id], @@ -283,8 +321,11 @@ def _get_reduced_universe(self): Returns: MDAnalysis.Universe: Selected subset of the system. """ + # If selection string is "all" the universe does not change if self._args.selection_string == "all": return self._universe + + # Otherwise create a new (smaller) universe based on the selection reduced = self._run_manager.new_U_select_atom( self._universe, self._args.selection_string ) @@ -303,8 +344,11 @@ def _get_molecule_container(self, universe, molecule_id): Returns: MDAnalysis.Universe: Universe containing only the selected molecule. """ + # Identify the atoms in the molecule frag = universe.atoms.fragments[molecule_id] selection_string = f"index {frag.indices[0]}:{frag.indices[-1]}" + + # Build a new universe with only the one molecule return self._run_manager.new_U_select_atom(universe, selection_string) def _process_united_atom_entropy( @@ -325,28 +369,37 @@ def _process_united_atom_entropy( united-atom level. Args: - mol_id (int): ID of the molecule. + group_id (int): ID of the group. mol_container (Universe): Universe for the selected molecule. ve: VibrationalEntropy object. ce: ConformationalEntropy object. - level (str): Granularity level (should be 'united_atom'). - start, end, step (int): Trajectory frame parameters. - n_frames (int): Number of trajectory frames. + level (str): Granularity level (should be "united_atom"). + force_matrix (dict): The force covariance matrices for the united + torque_matrix (dict): The torque covariance matrices for the united + atom residues. + states (dict): The united atom conformational states highest (bool): Whether this is the highest level of resolution for - the molecule. + the molecule. + number_frames (int): The number of frames analysed. """ S_trans, S_rot, S_conf = 0, 0, 0 + # The united atom entropy is calculated separately for each residue + # This is to allow residue by residue information + # and prevents the matrices from becoming too large for residue_id, residue in enumerate(mol_container.residues): key = (group_id, residue_id) + # Find the relevant force and torque matrices and tidy them up + # by removing rows and columns that are all zeros f_matrix = force_matrix[key] f_matrix = self._level_manager.filter_zero_rows_columns(f_matrix) t_matrix = torque_matrix[key] t_matrix = self._level_manager.filter_zero_rows_columns(t_matrix) + # Calculate the vibrational entropy S_trans_res = ve.vibrational_entropy_calculation( f_matrix, "force", self._args.temperature, highest ) @@ -354,22 +407,28 @@ def _process_united_atom_entropy( t_matrix, "torque", self._args.temperature, highest ) + # Get the relevant conformational states values = states[key] - + # Check if there is information in the states array contains_non_empty_states = ( np.any(values) if isinstance(values, np.ndarray) else any(values) ) + # Calculate the conformational entropy + # If there are no conformational states (i.e. no dihedrals) + # then the conformational entropy is zero S_conf_res = ( ce.conformational_entropy_calculation(values, number_frames) if contains_non_empty_states else 0 ) + # Add the data to the united atom level entropy S_trans += S_trans_res S_rot += S_rot_res S_conf += S_conf_res + # Print out the data for each residue self._data_logger.add_residue_data( residue_id, residue.resname, level, "Transvibrational", S_trans_res ) @@ -380,19 +439,19 @@ def _process_united_atom_entropy( residue_id, residue.resname, level, "Conformational", S_conf_res ) + # Print the total united atom level data for the molecule group self._data_logger.add_results_data(group_id, level, "Transvibrational", S_trans) self._data_logger.add_results_data(group_id, level, "Rovibrational", S_rot) self._data_logger.add_results_data(group_id, level, "Conformational", S_conf) def _process_vibrational_entropy( - self, group_id, number_frames, ve, level, force_matrix, torque_matrix, highest + self, group_id, ve, level, force_matrix, torque_matrix, highest ): """ Calculates vibrational entropy. Args: - mol_id (int): Molecule ID. - mol_container (Universe): Selected molecule's universe. + group_id (int): Group ID. ve: VibrationalEntropy object. level (str): Current granularity level. force_matrix : Force covariance matrix @@ -400,10 +459,13 @@ def _process_vibrational_entropy( highest (bool): Flag indicating if this is the highest granularity level. """ + # Find the relevant force and torque matrices and tidy them up + # by removing rows and columns that are all zeros force_matrix = self._level_manager.filter_zero_rows_columns(force_matrix) torque_matrix = self._level_manager.filter_zero_rows_columns(torque_matrix) + # Calculate the vibrational entropy S_trans = ve.vibrational_entropy_calculation( force_matrix, "force", self._args.temperature, highest ) @@ -411,6 +473,7 @@ def _process_vibrational_entropy( torque_matrix, "torque", self._args.temperature, highest ) + # Print the vibrational entropy for the molecule group self._data_logger.add_results_data(group_id, level, "Transvibrational", S_trans) self._data_logger.add_results_data(group_id, level, "Rovibrational", S_rot) @@ -426,9 +489,11 @@ def _process_conformational_entropy( mol_container (Universe): Selected molecule's universe. ce: ConformationalEntropy object. level (str): Level name (should be 'residue'). - start, end, step (int): Frame bounds. - n_frames (int): Number of frames used. + states (array): The conformational states. + number_frames (int): Number of frames used. """ + # Get the relevant conformational states + # Check if there is information in the states array group_states = states[group_id] if group_id < len(states) else None if group_states is not None: @@ -440,12 +505,16 @@ def _process_conformational_entropy( else: contains_state_data = False + # Calculate the conformational entropy + # If there are no conformational states (i.e. no dihedrals) + # then the conformational entropy is zero S_conf = ( ce.conformational_entropy_calculation(group_states, number_frames) if contains_state_data else 0 ) + # Print out the conformational entropy for the group self._data_logger.add_results_data(group_id, level, "Conformational", S_conf) def _finalize_molecule_results(self): @@ -537,6 +606,9 @@ def _calculate_water_entropy(self, universe, start, end, step): def _calculate_water_orientational_entropy(self, Sorient_dict): """ Logs orientational entropy values directly from Sorient_dict. + + Args: + Sorient_dict (dict): """ for resid, resname_dict in Sorient_dict.items(): for resname, values in resname_dict.items(): @@ -549,6 +621,9 @@ def _calculate_water_orientational_entropy(self, Sorient_dict): def _calculate_water_vibrational_translational_entropy(self, vibrations): """ Logs summed translational entropy values per residue-solvent pair. + + Args: + vibrations """ for (solute_id, _), entropy in vibrations.translational_S.items(): if isinstance(entropy, (list, np.ndarray)): @@ -571,6 +646,9 @@ def _calculate_water_vibrational_translational_entropy(self, vibrations): def _calculate_water_vibrational_rotational_entropy(self, vibrations): """ Logs summed rotational entropy values per residue-solvent pair. + + Args: + vibrations """ for (solute_id, _), entropy in vibrations.rotational_S.items(): if isinstance(entropy, (list, np.ndarray)): @@ -621,14 +699,12 @@ def frequency_calculation(self, lambdas, temp): frequency=sqrt(λ/kT)/2π - Input - ----- - lambdas : array of floats - eigenvalues of the covariance matrix - temp: float - temperature + Args: + lambdas : array of floats - eigenvalues of the covariance matrix + temp: float - temperature - Returns - ------- - frequencies : array of floats - corresponding vibrational frequencies + Returns: + frequencies : array of floats - corresponding vibrational frequencies """ pi = np.pi # get kT in Joules from given temperature @@ -638,11 +714,16 @@ def frequency_calculation(self, lambdas, temp): lambdas = np.array(lambdas) # Ensure input is a NumPy array logger.debug(f"Eigenvalues (lambdas): {lambdas}") + # Filter out lambda values that are negative or imaginary numbers + # As these will produce supurious entropy results that can crash + # the calculation lambdas = np.real_if_close(lambdas, tol=1000) valid_mask = ( np.isreal(lambdas) & (lambdas > 0) & (~np.isclose(lambdas, 0, atol=1e-07)) ) + # If any lambdas were removed by the filter, warn the user + # as this will suggest insufficient sampling in the simulation data if len(lambdas) > np.count_nonzero(valid_mask): logger.warning( f"{len(lambdas) - np.count_nonzero(valid_mask)} " @@ -664,16 +745,14 @@ def vibrational_entropy_calculation(self, matrix, matrix_type, temp, highest_lev Physics, 2018, 116, 1965–1976 / eq. (2) in A. Chakravorty, J. Higham and R. H. Henchman, J. Chem. Inf. Model., 2020, 60, 5540–5551. - Input - ----- - matrix : matrix - force/torque covariance matrix - matrix_type: string - temp: float - temperature - highest_level: bool - is this the highest level of the heirarchy + Args: + matrix : matrix - force/torque covariance matrix + matrix_type: string + temp: float - temperature + highest_level: bool - is this the highest level of the heirarchy - Returns - ------- - S_vib_total : float - transvibrational/rovibrational entropy + Returns: + S_vib_total : float - transvibrational/rovibrational entropy """ # N beads at a level => 3N x 3N covariance matrix => 3N eigenvalues # Get eigenvalues of the given matrix and change units to SI units @@ -754,18 +833,17 @@ def assign_conformation( Based on the identified TPs, states are assigned to each configuration of the dihedral. - Input - ----- - dihedral_atom_group : the group of 4 atoms defining the dihedral - number_frames : number of frames in the trajectory - bin_width : the width of the histogram bit, default 30 degrees - start : int, starting frame, will default to 0 - end : int, ending frame, will default to -1 (last frame in trajectory) - step : int, spacing between frames, will default to 1 + Args: + data_container (MDAnalysis Universe): data for the molecule/residue unit + dihedral (array): The dihedral angles in the unit + number_frames (int): number of frames in the trajectory + bin_width (int): the width of the histogram bit, default 30 degrees + start (int): starting frame, will default to 0 + end (int): ending frame, will default to -1 (last frame in trajectory) + step (int): spacing between frames, will default to 1 - Return - ------ - A timeseries with integer labels describing the state at each point in time. + Returns: + conformations (array): A timeseries with integer labels describing the state at each point in time. """ conformations = np.zeros(number_frames) @@ -780,7 +858,7 @@ def assign_conformation( timestep_index = timestep_index - start value = dihedral.value() # we want postive values in range 0 to 360 to make the peak assignment - # work using the fact that dihedrals have circular symetry + # works using the fact that dihedrals have circular symetry # (i.e. -15 degrees = +345 degrees) if value < 0: value += 360 @@ -795,7 +873,8 @@ def assign_conformation( # identify "convex turning-points" and populate a list of peaks # peak : a bin whose neighboring bins have smaller population - # NOTE might have problems if the peak is wide with a flat or sawtooth top + # NOTE might have problems if the peak is wide with a flat or sawtooth + # top in which case check you have a sensible bin width peak_values = [] for bin_index in range(number_bins): @@ -838,12 +917,12 @@ def conformational_entropy_calculation(self, states, number_frames): Uses the adaptive enumeration method (AEM). - Input - ----- - dihedrals : array - array of dihedrals in the molecule - Returns - ------- - S_conf_total : float - conformational entropy + Args: + states (array): Conformational states in the molecule + number_frames (int): The number of frames analysed + + Returns: + S_conf_total (float) : conformational entropy """ S_conf_total = 0 diff --git a/CodeEntropy/group_molecules.py b/CodeEntropy/group_molecules.py index f8e43fb..1dd219a 100644 --- a/CodeEntropy/group_molecules.py +++ b/CodeEntropy/group_molecules.py @@ -12,17 +12,19 @@ def __init__(self): """ Initializes the class with relevant information. - Args: - run_manager: Manager for universe and selection operations. - args: Argument namespace containing user parameters. - universe: MDAnalysis universe representing the simulation system. - data_logger: Logger for storing and exporting entropy data. """ self._molecule_groups = None def grouping_molecules(self, universe, grouping): """ Grouping molecules by desired level of detail. + + Args: + universe: MDAnalysis univers object for the system of interest. + grouping (str): how to group molecules for averaging + + Returns: + molecule_groups (dict): molecule indices for each group. """ molecule_groups = {} @@ -33,11 +35,22 @@ def grouping_molecules(self, universe, grouping): if grouping == "molecules": molecule_groups = self._by_molecules(universe) + number_groups = len(molecule_groups) + + logger.info(f"Number of molecule groups: {number_groups}") + logger.debug(f"Molecule groups are: {molecule_groups}") + return molecule_groups def _by_none(self, universe): """ Don't group molecules. Every molecule is in its own group. + + Args: + universe: MDAnalysis universe + + Returns: + molecule_groups (dict): molecule indices for each group. """ # fragments is MDAnalysis terminology for molecules @@ -48,17 +61,18 @@ def _by_none(self, universe): for molecule_i in range(number_molecules): molecule_groups[molecule_i] = [molecule_i] - number_groups = len(molecule_groups) - - logger.info(f"Number of molecule groups: {number_groups}") - logger.debug(f"Molecule groups are: {molecule_groups}") - return molecule_groups def _by_molecules(self, universe): """ Group molecules by chemical type. Based on number of atoms and atom names. + + Args: + universe: MDAnalysis universe + + Returns: + molecule_groups (dict): molecule indices for each group. """ # fragments is MDAnalysis terminology for molecules @@ -75,6 +89,10 @@ def _by_molecules(self, universe): names_j = fragments[molecule_j].names number_atoms_j = len(names_j) + # If molecule_i has the same number of atoms and same + # atom names as molecule_j, then index i is added to group j + # The index of molecule_j is the group key, the keys are + # all integers, but may not be consecutive numbers. if number_atoms_i == number_atoms_j and (names_i == names_j).all: if molecule_j in molecule_groups.keys(): molecule_groups[molecule_j].append(molecule_i) @@ -83,9 +101,4 @@ def _by_molecules(self, universe): molecule_groups[molecule_j].append(molecule_i) break - number_groups = len(molecule_groups) - - logger.info(f"Number of molecule groups: {number_groups}") - logger.debug(f"Molecule groups are: {molecule_groups}") - return molecule_groups diff --git a/CodeEntropy/levels.py b/CodeEntropy/levels.py index aa06c40..feb89aa 100644 --- a/CodeEntropy/levels.py +++ b/CodeEntropy/levels.py @@ -34,14 +34,12 @@ def select_levels(self, data_container): The level refers to the size of the bead (atom or collection of atoms) that will be used in the entropy calculations. - Input - ----- - arg_DataContainer : MDAnalysis universe object containing the system of interest + Args: + arg_DataContainer: MDAnalysis universe object containing the system of interest - Returns - ------- - number_molecules : integer - levels : array of strings for each molecule + Returns: + number_molecules (int): Number of molecules in the system. + levels (array): Strings describing the length scales for each molecule. """ # fragments is MDAnalysis terminology for what chemists would call molecules @@ -81,25 +79,16 @@ def get_matrices( """ Compute and accumulate force/torque covariance matrices for a given level. - Parameters - ---------- - data_container : MDAnalysis.Universe - Atom group for a molecule or residue. - level : str - 'polymer', 'residue', or 'united_atom'. - number_frames : int - Number of frames being processed. - highest_level : bool - Whether this is the top (polymer) level. - force_matrix, torque_matrix : np.ndarray or None - Accumulated matrices to add to. + Parameters: + data_container (MDAnalysis.Universe): Data for a molecule or residue. + level (str): 'polymer', 'residue', or 'united_atom'. + number_frames (int): Number of frames being processed. + highest_level (bool): Whether this is the top (largest bead size) level. + force_matrix, torque_matrix (np.ndarray or None): Accumulated matrices to add to. - Returns - ------- - force_matrix : np.ndarray - Accumulated force covariance matrix. - torque_matrix : np.ndarray - Accumulated torque covariance matrix. + Returns: + force_matrix (np.ndarray): Accumulated force covariance matrix. + torque_matrix (np.ndarray): Accumulated torque covariance matrix. """ # Make beads @@ -138,10 +127,10 @@ def get_matrices( for i in range(number_beads): for j in range(i, number_beads): f_sub = self.create_submatrix( - weighted_forces[i], weighted_forces[j], number_frames + weighted_forces[i], weighted_forces[j] ) t_sub = self.create_submatrix( - weighted_torques[i], weighted_torques[j], number_frames + weighted_torques[i], weighted_torques[j] ) force_submatrix[i][j] = f_sub force_submatrix[j][i] = f_sub.T @@ -188,20 +177,18 @@ def get_matrices( def get_dihedrals(self, data_container, level): """ Define the set of dihedrals for use in the conformational entropy function. - If residue level, the dihedrals are defined from the atoms + If united atom level, the dihedrals are defined from the heavy atoms (4 bonded atoms for 1 dihedral). - If polymer level, use the bonds between residues to cast dihedrals. + If residue level, use the bonds between residues to cast dihedrals. Note: not using improper dihedrals only ones with 4 atoms/residues in a linear arrangement. - Input - ----- - data_container : system information - level : level of the hierarchy (should be residue or polymer) + Args: + data_container (MDAnalysis.Universe): system information + level (str): level of the hierarchy (should be residue or polymer) - Output - ------ - dihedrals : set of dihedrals + Returns: + dihedrals (array): set of dihedrals """ # Start with empty array dihedrals = [] @@ -283,18 +270,21 @@ def compute_dihedral_conformations( start (int): Start frame index. end (int): End frame index. step (int): Step size for frame iteration. + ce : Conformational Entropy class Returns: - tuple: A tuple containing: - - states (list): List of conformation strings per frame. - - dihedrals (list): List of dihedral angle definitions. + states (list): List of conformation strings per frame. """ + # Identify the dihedral angles in the residue/molecule dihedrals = self.get_dihedrals(selector, level) + # When there are no dihedrals, there is only one possible conformation + # so the conformational states are not relevant if len(dihedrals) == 0: logger.debug("No dihedrals found; skipping conformation assignment.") states = [] else: + # Identify the conformational label for each dihedral at each frame num_dihedrals = len(dihedrals) conformation = np.zeros((num_dihedrals, number_frames)) @@ -303,6 +293,8 @@ def compute_dihedral_conformations( selector, dihedral, number_frames, bin_width, start, end, step ) + # for all the dihedrals available concatenate the label of each + # dihedral into the state for that frame states = [ state for state in ( @@ -318,14 +310,12 @@ def get_beads(self, data_container, level): """ Function to define beads depending on the level in the hierarchy. - Input - ----- - data_container : the MDAnalysis universe - level : the heirarchy level (polymer, residue, or united atom) + Args: + data_container (MDAnalysis.Universe): the molecule data + level (str): the heirarchy level (polymer, residue, or united atom) - Output - ------ - list_of_beads : the relevent beads + Returns: + list_of_beads : the relevent beads """ if level == "polymer": @@ -340,6 +330,7 @@ def get_beads(self, data_container, level): atom_group = "resindex " + str(residue) list_of_beads.append(data_container.select_atoms(atom_group)) + #NOTE this could cause problems for hydrogen or helium molecules if level == "united_atom": list_of_beads = [] heavy_atoms = data_container.select_atoms("not name H*") @@ -367,16 +358,14 @@ def get_axes(self, data_container, level, index=0): to define the axes, or if the unit is not bonded to others of the same level the prinicpal axes of the unit are used. - Input - ----- - data_container : the information about the molecule and trajectory - level : the level (united atom, residue, or polymer) of interest - index : residue index (integer) + Args: + data_container (MDAnalysis.Universe): the molecule and trajectory data + level (str): the level (united atom, residue, or polymer) of interest + index (int): residue index - Output - ------ - trans_axes : translational axes - rot_axes : rotational axes + Returns: + trans_axes : translational axes + rot_axes : rotational axes """ index = int(index) @@ -451,14 +440,12 @@ def get_avg_pos(self, atom_set, center): """ Function to get the average position of a set of atoms. - Input - ----- - atoms : MDAnalysis atom group - center : position for center of rotation + Args: + atom_set : MDAnalysis atom group + center : position for center of rotation - Output - ------ - avg_position : three dimensional vector + Returns: + avg_position : three dimensional vector """ # start with an empty vector avg_position = np.zeros((3)) @@ -477,8 +464,8 @@ def get_avg_pos(self, atom_set, center): else: # if no atoms in set the unit has no bonds to restrict its rotational - # motion, so we can use a random vector to get the spherical - # coordinates axes + # motion, so we can use a random vector to get spherical + # coordinate axes avg_position = np.random.random(3) # transform the average position to a coordinate system with the origin @@ -494,6 +481,12 @@ def get_sphCoord_axes(self, arg_r): For a given vector in space, treat it is a radial vector rooted at 0,0,0 and derive a curvilinear coordinate system according to the rules of polar spherical coordinates + + Args: + arg_r: 3 dimensional vector + + Returns: + spherical_basis: axes set (3 vectors) """ x2y2 = arg_r[0] ** 2 + arg_r[1] ** 2 @@ -572,14 +565,16 @@ def get_weighted_forces( """ Function to calculate the mass weighted forces for a given bead. - Input - ----- - bead : the part of the system to be considered - trans_axes : the axes relative to which the forces are located + Args: + data_container (MDAnalysis.Universe): Contains atomic positions and forces. + bead : The part of the molecule to be considered. + trans_axes (np.ndarray): The axes relative to which the forces are located. + highest_level (bool): Is this the largest level of the length scale hierarchy + force_partitioning (float): Factor to adjust force contributions to avoid over + counting correlated forces, default is 0.5. - Output - ------ - weighted_force : the mass weighted sum of the forces in the bead + Returns: + weighted_force (np.ndarray): The mass-weighted sum of the forces in the bead. """ forces_trans = np.zeros((3,)) @@ -641,7 +636,7 @@ def get_weighted_torques( Returns ------- - np.ndarray + weighted_torque : np.ndarray The mass-weighted sum of the torques in the bead. """ @@ -704,16 +699,16 @@ def get_weighted_torques( return weighted_torque - def create_submatrix(self, data_i, data_j, number_frames): + def create_submatrix(self, data_i, data_j): """ Function for making covariance matrices. - Input + Args ----- data_i : values for bead i - data_j : valuees for bead j + data_j : values for bead j - Output + Returns ------ submatrix : 3x3 matrix for the covariance between i and j """ @@ -790,6 +785,9 @@ def build_covariance_matrices( "poly": np.zeros(number_groups, dtype=int), } + # for each timestep, loop over the groups (and within each group + # the molecules belonging to the group) to build the force and torque + # covariance matrices indices = list(range(start, end, step)) for time_index, _ in zip(indices, reduced_atom.trajectory[start:end:step]): @@ -873,14 +871,23 @@ def update_force_torque_matrices( """ highest = level == level_list[-1] + # United atom level calculations are done separately for each residue + # This allows information per residue to be output and keeps the + # matrices from becoming too large if level == "united_atom": for res_id, residue in enumerate(mol.residues): key = (group_id, res_id) res = entropy_manager._run_manager.new_U_select_atom( mol, f"index {residue.atoms.indices[0]}:{residue.atoms.indices[-1]}" ) + + # This is to get MDAnalysis to get the information from the + # correct frame of the trajectory res.trajectory[time_index] + # Build the matrices, adding data from each timestep + # Being careful for the first timestep when data has not yet + # been added to the matrices f_mat, t_mat = self.get_matrices( res, level, @@ -901,8 +908,15 @@ def update_force_torque_matrices( torque_avg["ua"][key] += (t_mat - torque_avg["ua"][key]) / n elif level in ["residue", "polymer"]: + # This is to get MDAnalysis to get the information from the + # correct frame of the trajectory mol.trajectory[time_index] + key = "res" if level == "residue" else "poly" + + # Build the matrices, adding data from each timestep + # Being careful for the first timestep when data has not yet + # been added to the matrices f_mat, t_mat = self.get_matrices( mol, level, @@ -930,13 +944,11 @@ def filter_zero_rows_columns(self, arg_matrix): """ function for removing rows and columns that contain only zeros from a matrix - Input - ----- - arg_matrix : matrix + Args: + arg_matrix : matrix - Output - ------ - arg_matrix : the reduced size matrix + Returns: + arg_matrix : the reduced size matrix """ # record the initial size @@ -997,10 +1009,13 @@ def build_conformational_states( entropy_manager (EntropyManager): Instance of the EntropyManager reduced_atom (Universe): The reduced atom selection. levels (list): List of entropy levels per molecule. + groups (dict): Groups for averaging over molecules. start (int): Start frame index. end (int): End frame index. step (int): Step size for frame iteration. number_frames (int): Total number of frames to process. + bin_width (int): Width of histogram bins. + ce: Conformational Entropy object Returns: tuple: A tuple containing: diff --git a/docs/api.rst b/docs/api.rst index 9c0bc9c..de67a2a 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -28,14 +28,18 @@ Level Manager CodeEntropy.levels.LevelManager.select_levels CodeEntropy.levels.LevelManager.get_matrices CodeEntropy.levels.LevelManager.get_dihedrals + CodeEntropy.levels.LevelManager.compute_dihedral_conformations CodeEntropy.levels.LevelManager.get_beads CodeEntropy.levels.LevelManager.get_axes CodeEntropy.levels.LevelManager.get_avg_pos - CodeEntropy.levels.LevelManager.get_shpCoord_axes + CodeEntropy.levels.LevelManager.get_sphCoord_axes CodeEntropy.levels.LevelManager.get_weighted_forces CodeEntropy.levels.LevelManager.get_weighted_torques CodeEntropy.levels.LevelManager.create_submatrix + CodeEntropy.levels.LevelManager.build_covariance_matrices + CodeEntropy.levels.LevelManager.update_force_torque_matrices CodeEntropy.levels.LevelManager.filter_zero_rows_columns + CodeEntropy.levels.LevelManager.build_conformational_states Entropy Manager --------------- @@ -64,9 +68,3 @@ Conformational Entropy CodeEntropy.entropy.ConformationalEntropy.assign_conformation CodeEntropy.entropy.ConformationalEntropy.conformational_entropy_calculation -Orientational Entropy -^^^^^^^^^^^^^^^^^^^^^ -.. autosummary:: - :toctree: autosummary - - CodeEntropy.entropy.OrientationalEntropy diff --git a/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.rst b/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.rst index 9efd36d..28d29a7 100644 --- a/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.rst +++ b/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.rst @@ -22,11 +22,4 @@ - .. rubric:: Attributes - - .. autosummary:: - - ~ConformationalEntropy.residue_results_df - ~ConformationalEntropy.results_df - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.EntropyManager.rst b/docs/autosummary/CodeEntropy.entropy.EntropyManager.rst index 111dafa..6bd6f48 100644 --- a/docs/autosummary/CodeEntropy.entropy.EntropyManager.rst +++ b/docs/autosummary/CodeEntropy.entropy.EntropyManager.rst @@ -20,11 +20,4 @@ - .. rubric:: Attributes - - .. autosummary:: - - ~EntropyManager.residue_results_df - ~EntropyManager.results_df - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.OrientationalEntropy.rst b/docs/autosummary/CodeEntropy.entropy.OrientationalEntropy.rst deleted file mode 100644 index 24cae01..0000000 --- a/docs/autosummary/CodeEntropy.entropy.OrientationalEntropy.rst +++ /dev/null @@ -1,31 +0,0 @@ -CodeEntropy.entropy.OrientationalEntropy -======================================== - -.. currentmodule:: CodeEntropy.entropy - -.. autoclass:: OrientationalEntropy - - - .. automethod:: __init__ - - - .. rubric:: Methods - - .. autosummary:: - - ~OrientationalEntropy.__init__ - ~OrientationalEntropy.execute - ~OrientationalEntropy.orientational_entropy_calculation - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~OrientationalEntropy.residue_results_df - ~OrientationalEntropy.results_df - - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.rst b/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.rst index 80535ad..63625ae 100644 --- a/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.rst +++ b/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.rst @@ -22,11 +22,4 @@ - .. rubric:: Attributes - - .. autosummary:: - - ~VibrationalEntropy.residue_results_df - ~VibrationalEntropy.results_df - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.build_conformational_states.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.build_conformational_states.rst new file mode 100644 index 0000000..ec3d912 --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.build_conformational_states.rst @@ -0,0 +1,6 @@ +CodeEntropy.levels.LevelManager.build\_conformational\_states +============================================================= + +.. currentmodule:: CodeEntropy.levels + +.. automethod:: LevelManager.build_conformational_states \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.build_covariance_matrices.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.build_covariance_matrices.rst new file mode 100644 index 0000000..c932f48 --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.build_covariance_matrices.rst @@ -0,0 +1,6 @@ +CodeEntropy.levels.LevelManager.build\_covariance\_matrices +=========================================================== + +.. currentmodule:: CodeEntropy.levels + +.. automethod:: LevelManager.build_covariance_matrices \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.compute_dihedral_conformations.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.compute_dihedral_conformations.rst new file mode 100644 index 0000000..d8edaca --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.compute_dihedral_conformations.rst @@ -0,0 +1,6 @@ +CodeEntropy.levels.LevelManager.compute\_dihedral\_conformations +================================================================ + +.. currentmodule:: CodeEntropy.levels + +.. automethod:: LevelManager.compute_dihedral_conformations \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_sphCoord_axes.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_sphCoord_axes.rst new file mode 100644 index 0000000..673be71 --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.get_sphCoord_axes.rst @@ -0,0 +1,6 @@ +CodeEntropy.levels.LevelManager.get\_sphCoord\_axes +=================================================== + +.. currentmodule:: CodeEntropy.levels + +.. automethod:: LevelManager.get_sphCoord_axes \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.rst index e02556b..226be77 100644 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.rst +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.rst @@ -14,6 +14,9 @@ .. autosummary:: ~LevelManager.__init__ + ~LevelManager.build_conformational_states + ~LevelManager.build_covariance_matrices + ~LevelManager.compute_dihedral_conformations ~LevelManager.create_submatrix ~LevelManager.filter_zero_rows_columns ~LevelManager.get_avg_pos @@ -25,6 +28,7 @@ ~LevelManager.get_weighted_forces ~LevelManager.get_weighted_torques ~LevelManager.select_levels + ~LevelManager.update_force_torque_matrices diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.update_force_torque_matrices.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.update_force_torque_matrices.rst new file mode 100644 index 0000000..13b4903 --- /dev/null +++ b/docs/autosummary/CodeEntropy.levels.LevelManager.update_force_torque_matrices.rst @@ -0,0 +1,6 @@ +CodeEntropy.levels.LevelManager.update\_force\_torque\_matrices +=============================================================== + +.. currentmodule:: CodeEntropy.levels + +.. automethod:: LevelManager.update_force_torque_matrices \ No newline at end of file diff --git a/docs/community_guide.rst b/docs/community_guide.rst index 2bef6d2..987249a 100644 --- a/docs/community_guide.rst +++ b/docs/community_guide.rst @@ -19,7 +19,7 @@ Developer's Information CodeEntropy uses the Python programming language. Running tests ------------------------------ +-------------- To run the full test suite, simply install ``pytest`` and run in root directory of the repository: .. code-block:: bash @@ -38,3 +38,11 @@ To only run the a specific test, e.g.: .. code-block:: bash pytest CodeEntropy/tests/test_CodeEntropy/test_levels.py::test_select_levels + + Including your code into the CodeEntropy repository + --------------------------------------------------- +In order to add to CodeEntropy, a pull request must be created. +Code cannot be committed directly to the main branch. + +All pull requests will be reviewed by at least one of the core development team. + From af9472c2a9f579ca9307a657663d304df0076313 Mon Sep 17 00:00:00 2001 From: skfegan Date: Tue, 19 Aug 2025 13:00:59 +0100 Subject: [PATCH 07/24] adding references --- docs/science.rst | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/docs/science.rst b/docs/science.rst index 38fa495..417e718 100644 --- a/docs/science.rst +++ b/docs/science.rst @@ -1,34 +1,42 @@ Multiscale Cell Correlation Theory ================================== -This section is to describe the scientific theory behind the methods used in CodeEntropy. +This section is to describe the scientific theory behind the method used in CodeEntropy. -The multiscale cell correlation (MCC) method [1,2] has been developed in the group of Richard Henchman to calculate entropy from molecular dynamics (MD) simulations. It has been applied to liquids [3], proteins [4], and water [5]. -The purpose of this project is to develop a unified, well written and well tested code that would enable users from any group to calculate the entropy from their simulations using the MCC method. The latest code can be found at github.com/ccpbiosim/codeentropy. +The multiscale cell correlation (MCC) method [1-3] has been developed in the group of Richard Henchman to calculate entropy from molecular dynamics (MD) simulations. +It has been applied to liquids [1,3,4], proteins [2,5,6], solutions [6-9], and complexes [6,7]. +The purpose of this project is to develop and release well written code that enables users from any group to calculate the entropy from their simulations using the MCC. +The latest code can be found at github.com/ccpbiosim/codeentropy. The method requires forces to be written to the MD trajectory files along with the coordinates. Key References -------------- -[1] Ulf Hensen, Frauke Grater, and Richard H. Henchman. “Macromolecular -Entropy Can Be Accurately Computed from Force”. In: Journal of Chemi- -cal Theory and Computation 10 (2014), pp. 4777–4781. +[1] Richard H. Henchman. "Free energy of liquid water from a computer simulation via cell theory". In: Journal of Chemical Physics 126 (2007), 064504. -[2] Jonathan Higham et al. “Entropy of Flexible Liquids from Hierarchical +[2] Ulf Hensen, Frauke Grater, and Richard H. Henchman. “Macromolecular +Entropy Can Be Accurately Computed from Force”. In: Journal of Chemical Theory and Computation 10 (2014), pp. 4777–4781. + +[3] Jonathan Higham et al. “Entropy of Flexible Liquids from Hierarchical Force-Torque Covariance and Coordination”. In: Molecular Physics 116 (2018), pp. 1965–1976. -[3] Hafiz Saqib Ali, Jonathan Higham, and Richard H. Henchman. “Entropy +[4] Hafiz Saqib Ali, Jonathan Higham, and Richard H. Henchman. “Entropy of Simulated Liquids Using Multiscale Cell Correlation”. In: Entropy 21 (2019), p. 750. -[4] Arghya Chakravorty, Jonathan Higham, and Richard H. Henchman. “En- +[5] Arghya Chakravorty, Jonathan Higham, and Richard H. Henchman. “En- tropy of Proteins Using Multiscale Cell Correlation”. In: J. Chem. Inf. Model. 60 (2020), pp. 5540–5551. -[5] Jas Kalayan et al. “Total Free Energy Analysis of Fully Hydrated Proteins”. +[6] Jas Kalayan et al. “Total Free Energy Analysis of Fully Hydrated Proteins”. In: Proteins 91 (2023), pp. 74–90. +[7] Hafiz Saqib Ali et al."Energy-entropy method using Multiscale Cell Correlation to calculate binding free energies in the SAMPL8 Host-Guest Challenge". In: Journal of Computer Aided Molecular Design 35 (2021), 911-921. + +[8] Fabio Falcioni et al. "Energy-entropy prediction of octanol-water logP of SAMPL7 N-acylsulfonamide bioisosters". In Journal of Computer Aided Molecular Design 35 (2021) 831-840. + +[9] Hafiz Saqib Ali et al. "Energy-entropy Multiscale Cell Correlation method to predict toluene–water log P in the SAMPL9 challenge". In Physical Chemistry Chemical Physics 25 (2023), 27524-27531. Hierarchy --------- From f3bf25f7138d52dd41d62485220345eab5259b02 Mon Sep 17 00:00:00 2001 From: skfegan Date: Wed, 20 Aug 2025 14:42:10 +0100 Subject: [PATCH 08/24] refining science section --- docs/getting_started.rst | 2 +- docs/science.rst | 43 +++++++++++++++++++--------------------- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/docs/getting_started.rst b/docs/getting_started.rst index 864e4c7..019892a 100644 --- a/docs/getting_started.rst +++ b/docs/getting_started.rst @@ -17,7 +17,7 @@ Run the following at the root directory of this repository Input ---------- For supported format (any topology and trajectory formats that can be read by `MDAnalysis `_) you will need to output the **coordinates** and **forces** to the **same file**. - +Please consult the documentation for your MD simulation code if you need help outputting the forces. Units ------------ diff --git a/docs/science.rst b/docs/science.rst index 417e718..23e6488 100644 --- a/docs/science.rst +++ b/docs/science.rst @@ -32,6 +32,8 @@ Model. 60 (2020), pp. 5540–5551. [6] Jas Kalayan et al. “Total Free Energy Analysis of Fully Hydrated Proteins”. In: Proteins 91 (2023), pp. 74–90. +Additional application examples +------------------------------- [7] Hafiz Saqib Ali et al."Energy-entropy method using Multiscale Cell Correlation to calculate binding free energies in the SAMPL8 Host-Guest Challenge". In: Journal of Computer Aided Molecular Design 35 (2021), 911-921. [8] Fabio Falcioni et al. "Energy-entropy prediction of octanol-water logP of SAMPL7 N-acylsulfonamide bioisosters". In Journal of Computer Aided Molecular Design 35 (2021) 831-840. @@ -43,7 +45,8 @@ Hierarchy Atoms are grouped into beads. The levels refer to the size of the beads and the different entropy terms are calculated at each level, taking care to avoid over counting. -This is done at three different levels of the hierarchy - united atom, residues, and polymers. Not all molecules have all the levels of hierarchy, for example water has only the united atom level, benzene would have united atoms and residue, and a protein would have all three levels. +This is done at three different levels of the hierarchy - united atom, residues, and polymers. +Not all molecules have all the levels of hierarchy, for example water has only the united atom level, benzene would have united atoms and residue, and a protein would have all three levels. Vibrational Entropy ------------------- @@ -59,48 +62,42 @@ Then the frequencies are used in the quantum harmonic oscillator equation to cal .. math:: S_{\mathrm{vib}} = k_B \sum_{i=1}^{3N} \left( \frac{\hbar\nu_i/k_BT}{e^{\hbar\nu_i/k_BT}-1} - \ln\left(1-e^{-\hbar\nu_i/k_BT}\right)\right) -Why Forces and Torques? -^^^^^^^^^^^^^^^^^^^^^^^ - -Axes -^^^^ -It is important that the forces and torques are transformed into local coordinate systems, so that the covariance matrices represent the motions within the molecule not the diffusion of the molecule through the simulation box. The axes for this transformation are calculated for each bead in each time step. +Forces and torques on each bead are transformed into the bead's local coordinate frame at every time step to ensure that anisotropy in each direction is captured and not averaged over. +The axes for this transformation are calculated for each bead in each time step. For the polymer level, the translational and rotational axes are defined as the principal axes of the molecule. -For the residue level, there are two situations. When the residue is not bonded to any other residues, the translational and rotational axes are defined as the principal axes of the residue. When the residue is part of a larger polymer, the translational axes are defined as the principal axes of the polymer, and the rotational axes are defined from the average position of the bonds to neighbouring residues. +For the residue level, there are two situations. +When the residue is not bonded to any other residues, the translational and rotational axes are the principal axes of the molecule. +When the residue is part of a larger polymer, the translational axes are the principal axes of the polymer, and the rotational axes are defined from the average position of the bonds to neighbouring residues. For the united atom level, the translational axes are defined as the principal axes of the residue and the rotational axes are defined from the average position of the bonds to neighbouring heavy atoms. +If there are no bonds to other heavy atoms, the principal axes of the molecule are used. Conformational Entropy ---------------------- -This is a topographical term based on the intramolecular conformational states. - -Defining dihedrals -^^^^^^^^^^^^^^^^^^ -The united atom level dihedrals are defined as a chemist would expect, but only using the heavy atoms no hydrogens are involved. -The MDAnalysis package is used to find the united atom level dihedrals and calculate all the dihedral values. +This term is based on the intramolecular conformational states. -For the residue level dihedrals, the bond between the first and second residues and the bond between the third and fourth residues are found. The four atoms at the ends of these two bonds are used as points for the dihedral angle calculation. +The united atom level dihedrals are defined for every linear sequence of four bonded atoms, but only using the heavy atoms no hydrogens are involved. +The MDAnalysis package is used to identify and calculate the united atom dihedral values. -For each dihedral, the set of values from the trajectory frames is used to create histograms and identify peaks. Then at each frame, the dihedral is assigned to its nearest peak and a state is created from the peaks of every dihedral in the residue (for united atom level) or molecule (for residue level). - -From conformation to entropy -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +For the residue level dihedrals, the bond between the first and second residues and the bond between the third and fourth residues are found. +The four atoms at the ends of these two bonds are used as points for the dihedral angle calculation. +To discretise dihedrals, a histogram is constructed from each set of dihedral values and peaks are identified. +Then at each timestep, every dihedral is assigned to its nearest peak and a state is created from all the assigned peaks in the residue (for united atom level) or molecule (for residue level). Once the states are defined, the probability of finding the residue or molecule in each state is calculated. -Then the Boltzmann equation is used to calculate the entropy. +Then the Boltzmann equation is used to calculate the entropy: .. math:: S_{\mathrm{conf}} = - k_B \sum_{i=1}^{N_{\mathrm{conf}}}p_i\ln{p_i} Orientational Entropy --------------------- - -This is the second topographical entropy term. -Orientational entropy is the term that comes from the molecule's environment. The different environments are the different states for the molecule, and the statistics can be used to calculate the entropy. +Orientational entropy is the term that comes from the molecule's environment (or the intermolecular configuration). +The different environments are the different states for the molecule, and the statistics can be used to calculate the entropy. The simplest part is counting the number of neighbours, but symmetry should be accounted for in determining the number of orientations. For water, the hydrogen bonds are very important and the number of hydrogen bond donors and acceptors in the shell around the water molecule affects the number of unique orientations. From 6ee458050bf14a37a81036a00255777001cbf968 Mon Sep 17 00:00:00 2001 From: skfegan Date: Thu, 21 Aug 2025 15:35:22 +0100 Subject: [PATCH 09/24] adding download links for the example trajectory data --- docs/community_guide.rst | 15 +++++++++------ docs/getting_started.rst | 26 ++++++++++++++++++++++++-- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/docs/community_guide.rst b/docs/community_guide.rst index 987249a..c6b5f6f 100644 --- a/docs/community_guide.rst +++ b/docs/community_guide.rst @@ -3,9 +3,9 @@ Community guidelines Contribute to the software ----------------------------- -To contribute to CodeEntropy, fork the repository and create a pull request when you want to share and push your changes upstream. +To contribute to CodeEntropy, see the Developer's Information section below. -Report Issue +Report Issues ----------------- Create an issue ticket on GitHub and the team will review it as soon as possible. Please send us the input file as well. @@ -39,10 +39,13 @@ To only run the a specific test, e.g.: pytest CodeEntropy/tests/test_CodeEntropy/test_levels.py::test_select_levels - Including your code into the CodeEntropy repository - --------------------------------------------------- -In order to add to CodeEntropy, a pull request must be created. +Including your code into the CodeEntropy repository +--------------------------------------------------- +Any bugs, problems, or feature requests should get an issue on the GitHub repostitory that clearly explains the situation. Code cannot be committed directly to the main branch. +New branches should be named after the issue that is being worked on. +In order to add code to the main branch of CodeEntropy, a pull request must be created. All pull requests will be reviewed by at least one of the core development team. - +Up to date documentation and tests for all new code will be required before a pull request is approved. +Please use the pull request template, clearly explaining the purpose and effect of the pull request will aid in reviewing them quickly and accurately. diff --git a/docs/getting_started.rst b/docs/getting_started.rst index 019892a..53125ae 100644 --- a/docs/getting_started.rst +++ b/docs/getting_started.rst @@ -4,16 +4,30 @@ Getting Started Requirements ---------------- -* Python > 3.9 +* Python >= 3.11 Installation ---------------- -Run the following at the root directory of this repository +To install the released version: .. code-block:: bash pip install CodeEntropy +To install the latest development version: + +.. code-block:: bash + + git clone https://github.com/CCPBioSim/CodeEntropy.git + +.. code-block:: bash + + cd CodeEntropy + +.. code-block:: bash + + pip install . + Input ---------- For supported format (any topology and trajectory formats that can be read by `MDAnalysis `_) you will need to output the **coordinates** and **forces** to the **same file**. @@ -148,3 +162,11 @@ Or as an alternative, you could edit the config.yaml file and use the CodeEntrop CodeEntropy creates job* directories for the output, where * is a job number choosen by the so that there are sequentially numbered directories when you rerun CodeEntropy in the same working directory. Each job* directory contains the output json file and a subdirectory with the log files. + +Data Files +^^^^^^^^^^ +The example files mentioned above can be downloaded. + +`Lysozyme example (~1.2GB) `_ + +`DNA fragment example (~1MB) `_ From 9fe035e6769d8bdc43113ff2b17df98d68861eee Mon Sep 17 00:00:00 2001 From: harryswift01 Date: Fri, 22 Aug 2025 15:41:21 +0100 Subject: [PATCH 10/24] apply pre-commit hooks and linting to docs branch --- CodeEntropy/entropy.py | 14 ++++++++------ CodeEntropy/levels.py | 23 +++++++++++------------ 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/CodeEntropy/entropy.py b/CodeEntropy/entropy.py index b00cf7e..f932ad0 100644 --- a/CodeEntropy/entropy.py +++ b/CodeEntropy/entropy.py @@ -28,7 +28,8 @@ def __init__( universe: MDAnalysis universe representing the simulation system. data_logger: Logger for storing and exporting entropy data. level_manager: Provides level-specific data such as matrices and dihedrals. - group_molecules: includes the grouping functions for averaging over molecules. + group_molecules: includes the grouping functions for averaging over + molecules. """ self._run_manager = run_manager self._args = args @@ -374,9 +375,9 @@ def _process_united_atom_entropy( ve: VibrationalEntropy object. ce: ConformationalEntropy object. level (str): Granularity level (should be "united_atom"). - force_matrix (dict): The force covariance matrices for the united - torque_matrix (dict): The torque covariance matrices for the united - atom residues. + force_matrix (dict): The force covariance matrices for the united + torque_matrix (dict): The torque covariance matrices for the united + atom residues. states (dict): The united atom conformational states highest (bool): Whether this is the highest level of resolution for the molecule. @@ -608,7 +609,7 @@ def _calculate_water_orientational_entropy(self, Sorient_dict): Logs orientational entropy values directly from Sorient_dict. Args: - Sorient_dict (dict): + Sorient_dict (dict): """ for resid, resname_dict in Sorient_dict.items(): for resname, values in resname_dict.items(): @@ -843,7 +844,8 @@ def assign_conformation( step (int): spacing between frames, will default to 1 Returns: - conformations (array): A timeseries with integer labels describing the state at each point in time. + conformations (array): A timeseries with integer labels describing the + state at each point in time. """ conformations = np.zeros(number_frames) diff --git a/CodeEntropy/levels.py b/CodeEntropy/levels.py index feb89aa..9de1f5a 100644 --- a/CodeEntropy/levels.py +++ b/CodeEntropy/levels.py @@ -35,7 +35,8 @@ def select_levels(self, data_container): that will be used in the entropy calculations. Args: - arg_DataContainer: MDAnalysis universe object containing the system of interest + arg_DataContainer: MDAnalysis universe object containing the system of + interest Returns: number_molecules (int): Number of molecules in the system. @@ -84,7 +85,8 @@ def get_matrices( level (str): 'polymer', 'residue', or 'united_atom'. number_frames (int): Number of frames being processed. highest_level (bool): Whether this is the top (largest bead size) level. - force_matrix, torque_matrix (np.ndarray or None): Accumulated matrices to add to. + force_matrix, torque_matrix (np.ndarray or None): Accumulated matrices to add + to. Returns: force_matrix (np.ndarray): Accumulated force covariance matrix. @@ -126,12 +128,8 @@ def get_matrices( for i in range(number_beads): for j in range(i, number_beads): - f_sub = self.create_submatrix( - weighted_forces[i], weighted_forces[j] - ) - t_sub = self.create_submatrix( - weighted_torques[i], weighted_torques[j] - ) + f_sub = self.create_submatrix(weighted_forces[i], weighted_forces[j]) + t_sub = self.create_submatrix(weighted_torques[i], weighted_torques[j]) force_submatrix[i][j] = f_sub force_submatrix[j][i] = f_sub.T torque_submatrix[i][j] = t_sub @@ -330,7 +328,7 @@ def get_beads(self, data_container, level): atom_group = "resindex " + str(residue) list_of_beads.append(data_container.select_atoms(atom_group)) - #NOTE this could cause problems for hydrogen or helium molecules + # NOTE this could cause problems for hydrogen or helium molecules if level == "united_atom": list_of_beads = [] heavy_atoms = data_container.select_atoms("not name H*") @@ -570,11 +568,12 @@ def get_weighted_forces( bead : The part of the molecule to be considered. trans_axes (np.ndarray): The axes relative to which the forces are located. highest_level (bool): Is this the largest level of the length scale hierarchy - force_partitioning (float): Factor to adjust force contributions to avoid over - counting correlated forces, default is 0.5. + force_partitioning (float): Factor to adjust force contributions to avoid + over counting correlated forces, default is 0.5. Returns: - weighted_force (np.ndarray): The mass-weighted sum of the forces in the bead. + weighted_force (np.ndarray): The mass-weighted sum of the forces in the + bead. """ forces_trans = np.zeros((3,)) From 5b44342f0223682ef852e68f0e2e859355a57398 Mon Sep 17 00:00:00 2001 From: harryswift01 Date: Fri, 22 Aug 2025 15:55:17 +0100 Subject: [PATCH 11/24] fix unit tests for levels functions --- tests/test_CodeEntropy/test_levels.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tests/test_CodeEntropy/test_levels.py b/tests/test_CodeEntropy/test_levels.py index adb30e5..bf49ab2 100644 --- a/tests/test_CodeEntropy/test_levels.py +++ b/tests/test_CodeEntropy/test_levels.py @@ -896,10 +896,9 @@ def test_create_submatrix_basic_outer_product(self): data_i = np.array([1, 0, 0]) data_j = np.array([0, 1, 0]) - number_frames = 1 # Not used in current implementation expected = np.outer(data_i, data_j) - result = level_manager.create_submatrix(data_i, data_j, number_frames) + result = level_manager.create_submatrix(data_i, data_j) np.testing.assert_array_equal(result, expected) @@ -911,7 +910,7 @@ def test_create_submatrix_zero_vectors_returns_zero_matrix(self): data_i = np.zeros(3) data_j = np.zeros(3) - result = level_manager.create_submatrix(data_i, data_j, 1) + result = level_manager.create_submatrix(data_i, data_j) np.testing.assert_array_equal(result, np.zeros((3, 3))) @@ -926,7 +925,7 @@ def test_create_submatrix_single_frame(self): vec_j = np.array([4, 5, 6]) expected = np.outer(vec_i, vec_j) - result = level_manager.create_submatrix([vec_i], [vec_j], 1) + result = level_manager.create_submatrix([vec_i], [vec_j]) np.testing.assert_array_almost_equal(result, expected) def test_create_submatrix_symmetric_result_when_data_equal(self): @@ -936,7 +935,7 @@ def test_create_submatrix_symmetric_result_when_data_equal(self): level_manager = LevelManager() data = np.array([1, 2, 3]) - result = level_manager.create_submatrix(data, data, 1) + result = level_manager.create_submatrix(data, data) self.assertTrue(np.allclose(result, result.T)) # Check symmetry From e7cd15965f32a79ddd6b0167e60a203dd1bdc5e8 Mon Sep 17 00:00:00 2001 From: Jas Kalayan Date: Fri, 22 Aug 2025 16:07:59 +0100 Subject: [PATCH 12/24] add nbsphinx library as requirement for docs --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 8d02c51..c0f0504 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -60,6 +60,7 @@ pre-commit = [ ] docs = [ "sphinx", + "nbsphinx", "sphinx_rtd_theme", "sphinxcontrib-contentui", "sphinxcontrib-details-directive", From 4e389a2e919b2ea44fbcf4f0014c495d0481b22c Mon Sep 17 00:00:00 2001 From: Jas Kalayan Date: Fri, 22 Aug 2025 16:12:54 +0100 Subject: [PATCH 13/24] update warning to Windows users in docs --- docs/getting_started.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting_started.rst b/docs/getting_started.rst index 53125ae..c677653 100644 --- a/docs/getting_started.rst +++ b/docs/getting_started.rst @@ -59,7 +59,7 @@ Quick start guide -------------------- .. Warning:: - This doesn't work on Windows!!! + CodeEntropy has not been tested on Windows A quick and easy way to get started is to use the command-line tool which you can run in bash by simply typing ``CodeEntropy`` From 927264e9cec2a9239c1bbe2519c792e52588154b Mon Sep 17 00:00:00 2001 From: Jas Kalayan Date: Fri, 22 Aug 2025 16:19:55 +0100 Subject: [PATCH 14/24] update user FAQs about eigenvalue warnings --- docs/faq.rst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/faq.rst b/docs/faq.rst index 1323761..8ac22f8 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -1,9 +1,10 @@ Frequently asked questions ============================== -Why do I get ``nan`` or complex number result? +Why do I get a ``WARNING`` about invalid eigenvalues? -------------------------------------------------- -Try increasing the sampling time. This is especially true for residue level. -For example in a lysozyme system, residue level we have largest force and torque covariance matrices because at this level we have the largest number of beads (which is equal to the number of resides) compared to the molecule level (3 beads) and UA level (~10 beads per amino acid). -So insufficient sampling might introduce noise and cause matrix elements to deviate to values that would not reflect the uncorrelated nature of force-force covariance of distantly positioned residues. +Insufficient sampling might introduce noise and cause matrix elements to deviate to values that would not reflect the uncorrelated nature of force-force covariance of distantly positioned residues.Try increasing the sampling time. This is especially true at the residue level. + +For example in a lysozyme system, the residue level contains the largest force and torque covariance matrices because at this level we have the largest number of beads (which is equal to the number of residues in a protein) compared to the molecule level (3 beads) and united-atom level (~10 beads per amino acid). + From 6182c1b161db71cc9d4e3153704eadfd466d3b23 Mon Sep 17 00:00:00 2001 From: Jas Kalayan Date: Fri, 22 Aug 2025 16:22:13 +0100 Subject: [PATCH 15/24] remove autosummary files and add to gitignore --- ...formationalEntropy.assign_conformation.rst | 6 --- ...opy.conformational_entropy_calculation.rst | 6 --- ...eEntropy.entropy.ConformationalEntropy.rst | 25 ------------- ...Entropy.entropy.EntropyManager.execute.rst | 6 --- .../CodeEntropy.entropy.EntropyManager.rst | 23 ------------ ...brationalEntropy.frequency_calculation.rst | 6 --- ...CodeEntropy.entropy.VibrationalEntropy.rst | 25 ------------- ...ntropy.vibrational_entropy_calculation.rst | 6 --- ...velManager.build_conformational_states.rst | 6 --- ...LevelManager.build_covariance_matrices.rst | 6 --- ...Manager.compute_dihedral_conformations.rst | 6 --- ...y.levels.LevelManager.create_submatrix.rst | 6 --- ....LevelManager.filter_zero_rows_columns.rst | 6 --- ...ntropy.levels.LevelManager.get_avg_pos.rst | 6 --- ...deEntropy.levels.LevelManager.get_axes.rst | 6 --- ...eEntropy.levels.LevelManager.get_beads.rst | 6 --- ...ropy.levels.LevelManager.get_dihedrals.rst | 6 --- ...tropy.levels.LevelManager.get_matrices.rst | 6 --- ....levels.LevelManager.get_sphCoord_axes.rst | 6 --- ...evels.LevelManager.get_weighted_forces.rst | 6 --- ...vels.LevelManager.get_weighted_torques.rst | 6 --- .../CodeEntropy.levels.LevelManager.rst | 37 ------------------- ...ropy.levels.LevelManager.select_levels.rst | 6 --- ...elManager.update_force_torque_matrices.rst | 6 --- docs/autosummary/CodeEntropy.main.main.rst | 6 --- ...tropy.run.RunManager.create_job_folder.rst | 6 --- ...tropy.run.RunManager.new_U_select_atom.rst | 6 --- ...ropy.run.RunManager.new_U_select_frame.rst | 6 --- .../CodeEntropy.run.RunManager.rst | 37 ------------------- ...py.run.RunManager.run_entropy_workflow.rst | 6 --- 30 files changed, 297 deletions(-) delete mode 100644 docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.assign_conformation.rst delete mode 100644 docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.conformational_entropy_calculation.rst delete mode 100644 docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.rst delete mode 100644 docs/autosummary/CodeEntropy.entropy.EntropyManager.execute.rst delete mode 100644 docs/autosummary/CodeEntropy.entropy.EntropyManager.rst delete mode 100644 docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.frequency_calculation.rst delete mode 100644 docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.rst delete mode 100644 docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.vibrational_entropy_calculation.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.build_conformational_states.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.build_covariance_matrices.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.compute_dihedral_conformations.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.create_submatrix.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.filter_zero_rows_columns.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_avg_pos.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_axes.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_beads.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_dihedrals.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_matrices.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_sphCoord_axes.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_forces.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_torques.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.select_levels.rst delete mode 100644 docs/autosummary/CodeEntropy.levels.LevelManager.update_force_torque_matrices.rst delete mode 100644 docs/autosummary/CodeEntropy.main.main.rst delete mode 100644 docs/autosummary/CodeEntropy.run.RunManager.create_job_folder.rst delete mode 100644 docs/autosummary/CodeEntropy.run.RunManager.new_U_select_atom.rst delete mode 100644 docs/autosummary/CodeEntropy.run.RunManager.new_U_select_frame.rst delete mode 100644 docs/autosummary/CodeEntropy.run.RunManager.rst delete mode 100644 docs/autosummary/CodeEntropy.run.RunManager.run_entropy_workflow.rst diff --git a/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.assign_conformation.rst b/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.assign_conformation.rst deleted file mode 100644 index 11f405c..0000000 --- a/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.assign_conformation.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.entropy.ConformationalEntropy.assign\_conformation -============================================================== - -.. currentmodule:: CodeEntropy.entropy - -.. automethod:: ConformationalEntropy.assign_conformation \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.conformational_entropy_calculation.rst b/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.conformational_entropy_calculation.rst deleted file mode 100644 index 338a3a8..0000000 --- a/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.conformational_entropy_calculation.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.entropy.ConformationalEntropy.conformational\_entropy\_calculation -============================================================================== - -.. currentmodule:: CodeEntropy.entropy - -.. automethod:: ConformationalEntropy.conformational_entropy_calculation \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.rst b/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.rst deleted file mode 100644 index 28d29a7..0000000 --- a/docs/autosummary/CodeEntropy.entropy.ConformationalEntropy.rst +++ /dev/null @@ -1,25 +0,0 @@ -CodeEntropy.entropy.ConformationalEntropy -========================================= - -.. currentmodule:: CodeEntropy.entropy - -.. autoclass:: ConformationalEntropy - - - .. automethod:: __init__ - - - .. rubric:: Methods - - .. autosummary:: - - ~ConformationalEntropy.__init__ - ~ConformationalEntropy.assign_conformation - ~ConformationalEntropy.conformational_entropy_calculation - ~ConformationalEntropy.execute - - - - - - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.EntropyManager.execute.rst b/docs/autosummary/CodeEntropy.entropy.EntropyManager.execute.rst deleted file mode 100644 index bb0fad0..0000000 --- a/docs/autosummary/CodeEntropy.entropy.EntropyManager.execute.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.entropy.EntropyManager.execute -========================================== - -.. currentmodule:: CodeEntropy.entropy - -.. automethod:: EntropyManager.execute \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.EntropyManager.rst b/docs/autosummary/CodeEntropy.entropy.EntropyManager.rst deleted file mode 100644 index 6bd6f48..0000000 --- a/docs/autosummary/CodeEntropy.entropy.EntropyManager.rst +++ /dev/null @@ -1,23 +0,0 @@ -CodeEntropy.entropy.EntropyManager -================================== - -.. currentmodule:: CodeEntropy.entropy - -.. autoclass:: EntropyManager - - - .. automethod:: __init__ - - - .. rubric:: Methods - - .. autosummary:: - - ~EntropyManager.__init__ - ~EntropyManager.execute - - - - - - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.frequency_calculation.rst b/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.frequency_calculation.rst deleted file mode 100644 index 6cc259d..0000000 --- a/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.frequency_calculation.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.entropy.VibrationalEntropy.frequency\_calculation -============================================================= - -.. currentmodule:: CodeEntropy.entropy - -.. automethod:: VibrationalEntropy.frequency_calculation \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.rst b/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.rst deleted file mode 100644 index 63625ae..0000000 --- a/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.rst +++ /dev/null @@ -1,25 +0,0 @@ -CodeEntropy.entropy.VibrationalEntropy -====================================== - -.. currentmodule:: CodeEntropy.entropy - -.. autoclass:: VibrationalEntropy - - - .. automethod:: __init__ - - - .. rubric:: Methods - - .. autosummary:: - - ~VibrationalEntropy.__init__ - ~VibrationalEntropy.execute - ~VibrationalEntropy.frequency_calculation - ~VibrationalEntropy.vibrational_entropy_calculation - - - - - - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.vibrational_entropy_calculation.rst b/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.vibrational_entropy_calculation.rst deleted file mode 100644 index 423b3c9..0000000 --- a/docs/autosummary/CodeEntropy.entropy.VibrationalEntropy.vibrational_entropy_calculation.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.entropy.VibrationalEntropy.vibrational\_entropy\_calculation -======================================================================== - -.. currentmodule:: CodeEntropy.entropy - -.. automethod:: VibrationalEntropy.vibrational_entropy_calculation \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.build_conformational_states.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.build_conformational_states.rst deleted file mode 100644 index ec3d912..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.build_conformational_states.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.levels.LevelManager.build\_conformational\_states -============================================================= - -.. currentmodule:: CodeEntropy.levels - -.. automethod:: LevelManager.build_conformational_states \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.build_covariance_matrices.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.build_covariance_matrices.rst deleted file mode 100644 index c932f48..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.build_covariance_matrices.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.levels.LevelManager.build\_covariance\_matrices -=========================================================== - -.. currentmodule:: CodeEntropy.levels - -.. automethod:: LevelManager.build_covariance_matrices \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.compute_dihedral_conformations.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.compute_dihedral_conformations.rst deleted file mode 100644 index d8edaca..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.compute_dihedral_conformations.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.levels.LevelManager.compute\_dihedral\_conformations -================================================================ - -.. currentmodule:: CodeEntropy.levels - -.. automethod:: LevelManager.compute_dihedral_conformations \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.create_submatrix.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.create_submatrix.rst deleted file mode 100644 index 248257e..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.create_submatrix.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.levels.LevelManager.create\_submatrix -================================================= - -.. currentmodule:: CodeEntropy.levels - -.. automethod:: LevelManager.create_submatrix \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.filter_zero_rows_columns.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.filter_zero_rows_columns.rst deleted file mode 100644 index ca72456..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.filter_zero_rows_columns.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.levels.LevelManager.filter\_zero\_rows\_columns -=========================================================== - -.. currentmodule:: CodeEntropy.levels - -.. automethod:: LevelManager.filter_zero_rows_columns \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_avg_pos.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_avg_pos.rst deleted file mode 100644 index b22069b..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.get_avg_pos.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.levels.LevelManager.get\_avg\_pos -============================================= - -.. currentmodule:: CodeEntropy.levels - -.. automethod:: LevelManager.get_avg_pos \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_axes.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_axes.rst deleted file mode 100644 index 66ba179..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.get_axes.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.levels.LevelManager.get\_axes -========================================= - -.. currentmodule:: CodeEntropy.levels - -.. automethod:: LevelManager.get_axes \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_beads.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_beads.rst deleted file mode 100644 index 1ef4091..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.get_beads.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.levels.LevelManager.get\_beads -========================================== - -.. currentmodule:: CodeEntropy.levels - -.. automethod:: LevelManager.get_beads \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_dihedrals.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_dihedrals.rst deleted file mode 100644 index f3e4149..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.get_dihedrals.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.levels.LevelManager.get\_dihedrals -============================================== - -.. currentmodule:: CodeEntropy.levels - -.. automethod:: LevelManager.get_dihedrals \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_matrices.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_matrices.rst deleted file mode 100644 index f2236ce..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.get_matrices.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.levels.LevelManager.get\_matrices -============================================= - -.. currentmodule:: CodeEntropy.levels - -.. automethod:: LevelManager.get_matrices \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_sphCoord_axes.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_sphCoord_axes.rst deleted file mode 100644 index 673be71..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.get_sphCoord_axes.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.levels.LevelManager.get\_sphCoord\_axes -=================================================== - -.. currentmodule:: CodeEntropy.levels - -.. automethod:: LevelManager.get_sphCoord_axes \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_forces.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_forces.rst deleted file mode 100644 index 001d0a4..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_forces.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.levels.LevelManager.get\_weighted\_forces -===================================================== - -.. currentmodule:: CodeEntropy.levels - -.. automethod:: LevelManager.get_weighted_forces \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_torques.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_torques.rst deleted file mode 100644 index d9b0be3..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.get_weighted_torques.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.levels.LevelManager.get\_weighted\_torques -====================================================== - -.. currentmodule:: CodeEntropy.levels - -.. automethod:: LevelManager.get_weighted_torques \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.rst deleted file mode 100644 index 226be77..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.rst +++ /dev/null @@ -1,37 +0,0 @@ -CodeEntropy.levels.LevelManager -=============================== - -.. currentmodule:: CodeEntropy.levels - -.. autoclass:: LevelManager - - - .. automethod:: __init__ - - - .. rubric:: Methods - - .. autosummary:: - - ~LevelManager.__init__ - ~LevelManager.build_conformational_states - ~LevelManager.build_covariance_matrices - ~LevelManager.compute_dihedral_conformations - ~LevelManager.create_submatrix - ~LevelManager.filter_zero_rows_columns - ~LevelManager.get_avg_pos - ~LevelManager.get_axes - ~LevelManager.get_beads - ~LevelManager.get_dihedrals - ~LevelManager.get_matrices - ~LevelManager.get_sphCoord_axes - ~LevelManager.get_weighted_forces - ~LevelManager.get_weighted_torques - ~LevelManager.select_levels - ~LevelManager.update_force_torque_matrices - - - - - - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.select_levels.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.select_levels.rst deleted file mode 100644 index 4a2a03b..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.select_levels.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.levels.LevelManager.select\_levels -============================================== - -.. currentmodule:: CodeEntropy.levels - -.. automethod:: LevelManager.select_levels \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.levels.LevelManager.update_force_torque_matrices.rst b/docs/autosummary/CodeEntropy.levels.LevelManager.update_force_torque_matrices.rst deleted file mode 100644 index 13b4903..0000000 --- a/docs/autosummary/CodeEntropy.levels.LevelManager.update_force_torque_matrices.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.levels.LevelManager.update\_force\_torque\_matrices -=============================================================== - -.. currentmodule:: CodeEntropy.levels - -.. automethod:: LevelManager.update_force_torque_matrices \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.main.main.rst b/docs/autosummary/CodeEntropy.main.main.rst deleted file mode 100644 index 4f03f70..0000000 --- a/docs/autosummary/CodeEntropy.main.main.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.main.main -===================== - -.. currentmodule:: CodeEntropy.main - -.. autofunction:: main \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.run.RunManager.create_job_folder.rst b/docs/autosummary/CodeEntropy.run.RunManager.create_job_folder.rst deleted file mode 100644 index 32df84b..0000000 --- a/docs/autosummary/CodeEntropy.run.RunManager.create_job_folder.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.run.RunManager.create\_job\_folder -============================================== - -.. currentmodule:: CodeEntropy.run - -.. automethod:: RunManager.create_job_folder \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.run.RunManager.new_U_select_atom.rst b/docs/autosummary/CodeEntropy.run.RunManager.new_U_select_atom.rst deleted file mode 100644 index 74169dc..0000000 --- a/docs/autosummary/CodeEntropy.run.RunManager.new_U_select_atom.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.run.RunManager.new\_U\_select\_atom -=============================================== - -.. currentmodule:: CodeEntropy.run - -.. automethod:: RunManager.new_U_select_atom \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.run.RunManager.new_U_select_frame.rst b/docs/autosummary/CodeEntropy.run.RunManager.new_U_select_frame.rst deleted file mode 100644 index 7cdcad2..0000000 --- a/docs/autosummary/CodeEntropy.run.RunManager.new_U_select_frame.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.run.RunManager.new\_U\_select\_frame -================================================ - -.. currentmodule:: CodeEntropy.run - -.. automethod:: RunManager.new_U_select_frame \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.run.RunManager.rst b/docs/autosummary/CodeEntropy.run.RunManager.rst deleted file mode 100644 index b9c2524..0000000 --- a/docs/autosummary/CodeEntropy.run.RunManager.rst +++ /dev/null @@ -1,37 +0,0 @@ -CodeEntropy.run.RunManager -========================== - -.. currentmodule:: CodeEntropy.run - -.. autoclass:: RunManager - - - .. automethod:: __init__ - - - .. rubric:: Methods - - .. autosummary:: - - ~RunManager.__init__ - ~RunManager.change_lambda_units - ~RunManager.create_job_folder - ~RunManager.get_KT2J - ~RunManager.new_U_select_atom - ~RunManager.new_U_select_frame - ~RunManager.read_universe - ~RunManager.run_entropy_workflow - ~RunManager.write_universe - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~RunManager.DEF_TEMPER - ~RunManager.N_AVOGADRO - - \ No newline at end of file diff --git a/docs/autosummary/CodeEntropy.run.RunManager.run_entropy_workflow.rst b/docs/autosummary/CodeEntropy.run.RunManager.run_entropy_workflow.rst deleted file mode 100644 index 03b893c..0000000 --- a/docs/autosummary/CodeEntropy.run.RunManager.run_entropy_workflow.rst +++ /dev/null @@ -1,6 +0,0 @@ -CodeEntropy.run.RunManager.run\_entropy\_workflow -================================================= - -.. currentmodule:: CodeEntropy.run - -.. automethod:: RunManager.run_entropy_workflow \ No newline at end of file From 0c793d5345837c834eff889424870902d6d32718 Mon Sep 17 00:00:00 2001 From: Jas Kalayan Date: Fri, 22 Aug 2025 16:22:45 +0100 Subject: [PATCH 16/24] add docs/autosummary to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index e66bde0..e27a228 100644 --- a/.gitignore +++ b/.gitignore @@ -64,6 +64,7 @@ instance/ # Sphinx documentation docs/_build/ +docs/autosummary/ # PyBuilder target/ From 75cf7f5bdc7bb20977a120378e677cd5d4679033 Mon Sep 17 00:00:00 2001 From: harryswift01 Date: Fri, 22 Aug 2025 16:24:11 +0100 Subject: [PATCH 17/24] updated developer guide docs --- docs/community_guide.rst | 51 --------------- docs/developer_guide.rst | 136 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 136 insertions(+), 51 deletions(-) delete mode 100644 docs/community_guide.rst create mode 100644 docs/developer_guide.rst diff --git a/docs/community_guide.rst b/docs/community_guide.rst deleted file mode 100644 index c6b5f6f..0000000 --- a/docs/community_guide.rst +++ /dev/null @@ -1,51 +0,0 @@ -Community guidelines -============================== - -Contribute to the software ------------------------------ -To contribute to CodeEntropy, see the Developer's Information section below. - -Report Issues ------------------ -Create an issue ticket on GitHub and the team will review it as soon as possible. Please send us the input file as well. - -Seek support ----------------- -Post on GitHub discussion and the team will reply as soon as possible. - -Developer's Information -============================== - -CodeEntropy uses the Python programming language. - -Running tests --------------- -To run the full test suite, simply install ``pytest`` and run in root directory of the repository: - -.. code-block:: bash - - pytest - -To only run the unit tests in a particular part of program, for example only running tests for the levels functions: - -.. code-block:: bash - - pytest CodeEntropy/tests/test_CodeEntropy/test_levels.py - - -To only run the a specific test, e.g.: - -.. code-block:: bash - - pytest CodeEntropy/tests/test_CodeEntropy/test_levels.py::test_select_levels - -Including your code into the CodeEntropy repository ---------------------------------------------------- -Any bugs, problems, or feature requests should get an issue on the GitHub repostitory that clearly explains the situation. -Code cannot be committed directly to the main branch. -New branches should be named after the issue that is being worked on. - -In order to add code to the main branch of CodeEntropy, a pull request must be created. -All pull requests will be reviewed by at least one of the core development team. -Up to date documentation and tests for all new code will be required before a pull request is approved. -Please use the pull request template, clearly explaining the purpose and effect of the pull request will aid in reviewing them quickly and accurately. diff --git a/docs/developer_guide.rst b/docs/developer_guide.rst new file mode 100644 index 0000000..259d21b --- /dev/null +++ b/docs/developer_guide.rst @@ -0,0 +1,136 @@ +Developer Guide +=============== + +CodeEntropy is open-source, and we welcome contributions from the wider community to help improve and extend its functionality. This guide walks you through setting up a development environment, running tests, submitting contributions, and maintaining coding standards. + +Getting Started for Developers +------------------------------ + +Create a virtual environment:: + + python -m venv codeentropy-dev + source codeentropy-dev/bin/activate # Linux/macOS + codeentropy-dev\Scripts\activate # Windows + +Clone the repository:: + + git clone https://github.com/CCPBioSim/CodeEntropy.git + cd CodeEntropy + +Install development dependencies:: + + pip install -e .[testing,docs,pre-commit] + +Running Tests +------------- + +Run the full test suite:: + + pytest -v + +Run tests with code coverage:: + + pytest --cov CodeEntropy --cov-report=term-missing + +Run tests for a specific module:: + + pytest CodeEntropy/tests/test_CodeEntropy/test_levels.py + +Run a specific test:: + + pytest CodeEntropy/tests/test_CodeEntropy/test_levels.py::test_select_levels + +Coding Standards +---------------- + +We use **pre-commit hooks** to maintain code quality and consistent style. To enable these hooks:: + + pre-commit install + +This ensures: + +- **Formatting** via ``black`` (`psf/black`) +- **Import sorting** via ``isort`` with the ``black`` profile +- **Linting** via ``flake8`` with ``flake8-pyproject`` +- **Basic checks** via ``pre-commit-hooks``, including: + + - Detection of large added files + - AST validity checks + - Case conflict detection + - Executable shebang verification + - Merge conflict detection + - TOML and YAML syntax validation + +To skip pre-commit checks for a commit:: + + git commit -n + +.. note:: + + Pull requests must pass all pre-commit checks before being merged. + +Continuous Integration (CI) +--------------------------- + +CodeEntropy uses **GitHub Actions** to automatically: + +- Run all tests +- Check coding style +- Build documentation +- Validate versioning + +Every pull request will trigger these checks to ensure quality and stability. + +Building Documentation +---------------------- + +Build locally:: + + cd docs + make html + +The generated HTML files will be in ``docs/build/html/``. Open ``index.html`` in your browser to view the documentation. + +Edit docs in the following directories: + +- ``docs/user_guide/`` +- ``docs/developer_guide/`` + +Contributing Code +----------------- + +Creating an Issue +^^^^^^^^^^^^^^^^^ + +If you encounter bugs or want to request features: + +1. Open an issue on GitHub. +2. Provide a clear description and input files if applicable. + +Branching +^^^^^^^^^ + +- Never commit directly to ``main``. +- Create a branch named after the issue:: + + git checkout -b 123-fix-levels + +Pull Requests +^^^^^^^^^^^^^ + +1. Make your changes in a branch. +2. Ensure tests and pre-commit checks pass. +3. Submit a pull request. +4. At least one core developer will review it. +5. Include updated documentation and tests for new code. + +Summary +------- + +Full developer setup:: + + git clone https://github.com/CCPBioSim/CodeEntropy.git + cd CodeEntropy + pip install -e .[testing,docs,pre-commit] + pre-commit install + pytest --cov CodeEntropy --cov-report=term-missing From 39985ed6c7b11758294e9c248c385de94d5ef301 Mon Sep 17 00:00:00 2001 From: Jas Kalayan Date: Fri, 22 Aug 2025 16:43:20 +0100 Subject: [PATCH 18/24] update docs theme and add logo to docs --- docs/conf.py | 18 +++++++++++++----- docs/faq.rst | 2 +- docs/images/biosim-codeentropy_logo_grey.svg | 1 + 3 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 docs/images/biosim-codeentropy_logo_grey.svg diff --git a/docs/conf.py b/docs/conf.py index 7856f74..2ee1e60 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -15,6 +15,7 @@ # Incase the project was not installed import os import sys +import time sys.path.insert(0, os.path.abspath("..")) @@ -23,11 +24,16 @@ # -- Project information ----------------------------------------------------- project = "CodeEntropy" -copyright = ( - "2022, DonaldChung-HK. Project structure based on the " - "Computational Molecular Science Python Cookiecutter version 1.6" +copyright_first_year = "2022" +copyright_owners = "CCPBioSim" +author = "CCPBioSim" +current_year = str(time.localtime().tm_year) +copyright_year_string = ( + current_year + if current_year == copyright_first_year + else f"{copyright_first_year}-{current_year}" ) -author = "DonaldChung-HK" +copyright = f"{copyright_year_string}, {copyright_owners}. All rights reserved" # The short X.Y version version = "" @@ -53,6 +59,7 @@ "sphinx.ext.intersphinx", "sphinx.ext.extlinks", "nbsphinx", + "sphinx_copybutton", ] autosummary_generate = True @@ -93,7 +100,8 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = "sphinx_rtd_theme" +html_theme = "furo" +html_logo = "images/biosim-codeentropy_logo_grey.svg" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the diff --git a/docs/faq.rst b/docs/faq.rst index 8ac22f8..aec29b1 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -2,7 +2,7 @@ Frequently asked questions ============================== Why do I get a ``WARNING`` about invalid eigenvalues? --------------------------------------------------- +----------------------------------------------------- Insufficient sampling might introduce noise and cause matrix elements to deviate to values that would not reflect the uncorrelated nature of force-force covariance of distantly positioned residues.Try increasing the sampling time. This is especially true at the residue level. diff --git a/docs/images/biosim-codeentropy_logo_grey.svg b/docs/images/biosim-codeentropy_logo_grey.svg new file mode 100644 index 0000000..0a2386d --- /dev/null +++ b/docs/images/biosim-codeentropy_logo_grey.svg @@ -0,0 +1 @@ + \ No newline at end of file From 8b2ff2b14e917bce36d67539f2494028503cf528 Mon Sep 17 00:00:00 2001 From: harryswift01 Date: Fri, 22 Aug 2025 16:44:03 +0100 Subject: [PATCH 19/24] updated `README.md` to reflect new changes for `v1.0` --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b0b88ac..30d5fe9 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ CodeEntropy ============================== -CodeEntropy tool with POSEIDON code integrated to form a complete and generally applicable set of tools for calculating entropy +CodeEntropy is a Python package for computing the configurational entropy of macromolecular systems using forces sampled from molecular dynamics (MD) simulations. It implements the multiscale cell correlation method to provide accurate and efficient entropy estimates, supporting a wide range of applications in molecular simulation and statistical mechanics.

CodeEntropy logo @@ -18,13 +18,12 @@ See [CodeEntropy’s documentation](https://codeentropy.readthedocs.io/en/latest ## Copyright -Copyright (c) 2022, DonaldChung-HK, CCPBioSim +Copyright (c) 2025 CCPBioSim ## Acknowledgements Project based on the -- [Computational Molecular Science Python Cookiecutter](https://github.com/molssi/cookiecutter-cms) version 1.6. - [arghya90/CodeEntropy](https://github.com/arghya90/CodeEntropy) version 0.3 - [jkalayan/PoseidonBeta](https://github.com/jkalayan/PoseidonBeta) From 5fb5ac317861d5be8ebb54b69089909c751285c5 Mon Sep 17 00:00:00 2001 From: harryswift01 Date: Fri, 22 Aug 2025 16:51:00 +0100 Subject: [PATCH 20/24] updated `LICENCE` with up to date yaer --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index c4eca59..2c6e443 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ MIT License -Copyright (c) 2022 DonaldChung-HK +Copyright (c) 2025 CCPBioSim Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From f2fd0d7a9a6c3acd56f65995d46df0b4e6e1bc71 Mon Sep 17 00:00:00 2001 From: Jas Kalayan Date: Fri, 22 Aug 2025 16:53:46 +0100 Subject: [PATCH 21/24] update rtd.yaml with path to config and latest python, remove redundant .bat file --- docs/make.bat | 36 ------------------------------------ readthedocs.yml | 9 +++++---- 2 files changed, 5 insertions(+), 40 deletions(-) delete mode 100644 docs/make.bat diff --git a/docs/make.bat b/docs/make.bat deleted file mode 100644 index 946d600..0000000 --- a/docs/make.bat +++ /dev/null @@ -1,36 +0,0 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=. -set BUILDDIR=_build -set SPHINXPROJ=CodeEntropy - -if "%1" == "" goto help - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% - -:end -popd diff --git a/readthedocs.yml b/readthedocs.yml index b4b8c26..b69909f 100644 --- a/readthedocs.yml +++ b/readthedocs.yml @@ -6,11 +6,12 @@ build: image: latest python: - version: 3.8 + version: 3.13 install: - method: pip path: . - - requirements: docs/requirements.txt + - requirements: docs -conda: - environment: docs/requirements.yaml \ No newline at end of file +sphinx: + # Path to your Sphinx configuration file. + configuration: docs/source/conf.py \ No newline at end of file From b06d1c4f26abceedc901301c5a20f5bd96bdba06 Mon Sep 17 00:00:00 2001 From: James Gebbie-Rayet Date: Fri, 22 Aug 2025 16:58:00 +0100 Subject: [PATCH 22/24] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 30d5fe9..55360e0 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Copyright (c) 2025 CCPBioSim ## Acknowledgements -Project based on the +Project based on - [arghya90/CodeEntropy](https://github.com/arghya90/CodeEntropy) version 0.3 - [jkalayan/PoseidonBeta](https://github.com/jkalayan/PoseidonBeta) From f9096f4f35f9a059387beb33196c43c23ebed4cb Mon Sep 17 00:00:00 2001 From: Jas Kalayan Date: Fri, 22 Aug 2025 17:03:40 +0100 Subject: [PATCH 23/24] update index.rst to reflect new dev guide --- docs/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.rst b/docs/index.rst index ae1d905..3ba86d7 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -18,7 +18,7 @@ This code is a complete and generally applicable set of tools for computing entr api science faq - community_guide + developer_guide Indices and tables ================== From e2499284edd88e4ce4f780dedfca5068ee0a8bf2 Mon Sep 17 00:00:00 2001 From: Jas Kalayan Date: Fri, 22 Aug 2025 17:10:04 +0100 Subject: [PATCH 24/24] update identical molecule checking for group allocation --- CodeEntropy/group_molecules.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CodeEntropy/group_molecules.py b/CodeEntropy/group_molecules.py index b6e9d2f..af91ffa 100644 --- a/CodeEntropy/group_molecules.py +++ b/CodeEntropy/group_molecules.py @@ -98,7 +98,9 @@ def _by_molecules(self, universe): # atom names as molecule_j, then index i is added to group j # The index of molecule_j is the group key, the keys are # all integers, but may not be consecutive numbers. - if number_atoms_i == number_atoms_j and (names_i == names_j).all: + if number_atoms_i == number_atoms_j and all( + i == j for i, j in zip(names_i, names_j) + ): if molecule_j in molecule_groups.keys(): molecule_groups[molecule_j].append(molecule_i) else: