iphasimulator.system_builder_packmol
====================================
.. py:module:: iphasimulator.system_builder_packmol
.. autoapi-nested-parse::
Advanced Packmol-based solvated-system builder.
This module is intentionally separate from the simple GROMACS solvate/genion
route. It prepares Packmol inputs for future realistic polymer simulations while
keeping the quick validation workflow lightweight.
Attributes
----------
.. autoapisummary::
iphasimulator.system_builder_packmol.AVOGADRO_CONSTANT
iphasimulator.system_builder_packmol.LITERS_PER_NM3
iphasimulator.system_builder_packmol.TIP3P_WATER_DENSITY_PER_NM3
iphasimulator.system_builder_packmol.TIP3P_WATER_PDB
iphasimulator.system_builder_packmol.SODIUM_PDB
iphasimulator.system_builder_packmol.CHLORIDE_PDB
Classes
-------
.. autoapisummary::
iphasimulator.system_builder_packmol.PackmolBuildResult
Functions
---------
.. autoapisummary::
iphasimulator.system_builder_packmol.estimate_tip3p_water_count
iphasimulator.system_builder_packmol.estimate_ion_pairs
iphasimulator.system_builder_packmol.build_packmol_solvated_system
Module Contents
---------------
.. py:data:: AVOGADRO_CONSTANT
:value: 6.02214076e+23
.. py:data:: LITERS_PER_NM3
:value: 1e-24
.. py:data:: TIP3P_WATER_DENSITY_PER_NM3
:value: 33.367
.. py:data:: TIP3P_WATER_PDB
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""HETATM 1 O WAT A 1 0.000 0.000 0.000 1.00 0.00 O
HETATM 2 H1 WAT A 1 0.096 0.000 0.000 1.00 0.00 H
HETATM 3 H2 WAT A 1 -0.024 0.093 0.000 1.00 0.00 H
END
"""
.. raw:: html
.. py:data:: SODIUM_PDB
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""HETATM 1 NA NA A 1 0.000 0.000 0.000 1.00 0.00 Na
END
"""
.. raw:: html
.. py:data:: CHLORIDE_PDB
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""HETATM 1 CL CL A 1 0.000 0.000 0.000 1.00 0.00 Cl
END
"""
.. raw:: html
.. py:class:: PackmolBuildResult
Files and counts produced by the Packmol solvated-system builder.
.. py:attribute:: output_dir
:type: pathlib.Path
.. py:attribute:: solvated_pdb_path
:type: pathlib.Path
.. py:attribute:: packmol_input_path
:type: pathlib.Path
.. py:attribute:: packmol_log_path
:type: pathlib.Path
.. py:attribute:: copied_polymer_paths
:type: tuple[pathlib.Path, ...]
.. py:attribute:: support_structure_paths
:type: tuple[pathlib.Path, ...]
.. py:attribute:: box_size_nm
:type: float
.. py:attribute:: water_count
:type: int
.. py:attribute:: sodium_count
:type: int
.. py:attribute:: chloride_count
:type: int
.. py:attribute:: polymer_counts
:type: tuple[int, ...]
.. py:function:: estimate_tip3p_water_count(box_size_nm: float) -> int
Estimate the number of TIP3P waters for a cubic box at bulk density.
.. py:function:: estimate_ion_pairs(box_size_nm: float, nacl_concentration_molar: float) -> int
Estimate NaCl ion pairs from molarity and cubic box volume.
.. py:function:: build_packmol_solvated_system(polymer_structures: collections.abc.Sequence[str | pathlib.Path], output_dir: str | pathlib.Path, *, box_size_nm: float, water_model: str = 'tip3p', nacl_concentration_molar: float = 0.15, num_polymers: int | collections.abc.Sequence[int] = 1, polymer_spacing_nm: float = 1.0, packmol_command: str = 'packmol', run_packmol: bool = True, runner=subprocess.run) -> PackmolBuildResult
Build an advanced solvated PHA/TIP3P/NaCl initial PDB using Packmol.
This route does not replace the standard GROMACS solvate/genion workflow.
It is an advanced builder for future realistic polymer simulations and can
later be extended to enzyme/polymer systems. Membranes are intentionally not
implemented here yet.