Mechanistic insights into hydrophobicity-dependent antimicrobial selectivity of quaternary ammonium poly(oxanorborneneimide) polymers using coarse-grained simulations
Data files
Apr 24, 2026 version files 90.54 GB
-
README.md
9.96 KB
-
Supporting_Info.tar.gz
90.54 GB
Abstract
The rise of antibiotic resistance to small-molecule drugs has driven the development of materials that directly disrupt bacterial cell membranes. Inspired by antimicrobial peptides (AMPs), synthetic polymers are gaining attention as promising antimicrobial materials because their molecular properties can be tuned to enhance selective killing of bacterial versus mammalian cells. Poly(oxanorborneneimide) (PONI) polymers have exhibited high selectivity against a broad spectrum of bacteria over human cells, depending upon their side chain functionalities. However, the mechanistic basis of this selectivity remains poorly understood, limiting the design of new PONI polymers with enhanced selectivity. In this study, we present a molecular dynamics (MD) simulation framework to investigate PONI-membrane interactions and extract mechanistically relevant descriptors correlated with experimentally determined activities. We model four PONI polymers with side chains of increasing hydrophobicity to understand interactions with model E. coli, methicillin-resistant S. aureus (MRSA), and human red blood cell (RBC) membranes. We develop a generalizable coarse-grained parameterization strategy for PONI polymers within the MARTINI 3 force field to enable simulation of polymer-membrane interactions at relevant length and timescales. Our simulations reveal that experimental activities against different membranes can be related to the propensity for PONI polymers to insert into the membrane, driven by electrostatic and hydrophobic interactions. We find that differences in membrane composition, particularly enrichment of cardiolipin in bacterial membranes, play a critical role in the selective interactions of moderately hydrophobic polymers toward bacterial membranes, in contrast with the non-selective toxicity toward both bacterial and RBC membranes observed for highly hydrophobic polymers.
Dataset DOI: 10.5061/dryad.3j9kd520b
Description of the data and file structure
This work presents a generalizable atomistic to coarse-grained parameterization strategy for synthetic poly(oxanorborneneimide) (PONI) polymers in the MARTINI 3 force field for use in polymer-membrane molecular dynamics (MD) simulations with bacterial (E. coli, MRSA) and human red blood cell (RBC) membranes. The goal of this study is to provide mechanistic insights on disruption mechanisms of these polymers interacting with bacterial and human membranes to support experimental activity results by Gupta et al. (doi.org/10.1021/jacs.8b06961). All simulations were run with Gromacs 2021.5 patched with PLUMED 2.8.
Folder Structure
The provided tarball (Supporting_Info.tar.gz) contains the following folders to aid with the reproducibility of the results of this work:
- 20mer --> All three replicas (T1, T2, T3) for the four 20-mer PONI backbone-only architectures (Cis, Alt, Block, Trans) simulated as part of Figure 3 in the main text.
- 64mer --> All simulations following the methodology outlined in Figure 2 in the main text. Polymer simulations in solvent (Figure 2a-d) follow the naming convention '64mer_[polymer]_random[#]', where [polymer] refers to the polymer sidechain (P1, P3, P5, or P9) and [#] refers to the replica number (1,2,3). Polymer-membrane simulation folders (Figure 2e-g) are specified with the corresponding membrane type (EC = E. coli, MRSA = MRSA, RBC = RBC) as visualized in Figure 1b.
- Bare --> Three independent replicas for coarse-grained membranes (EC = E. coli, MRSA = MRSA, RBC = RBC) in the absence of polymers.
The following file types in these folders are compatible with Gromacs for use in MD simulations:
- .gro --> system x,y,z coordinates for all atoms (atomistic) or beads (coarse-grained).
- .tpr --> run input file generated by gmx grompp containing all system information (topology, run parameters, etc.).
- .xtc --> simulation trajectory used for post-simulation analysis and visualization.
- .edr --> energy file logging thermodynamic quantities from simulation.
- .cpt --> checkpoint file used to extend or restart simulations if needed.
- .log --> log of MD run, including energy summaries and simulation performance.
(NOTE: Each .log file contains an auto-generated GNU LGPL software license header. This text refers solely to the Gromacs software rather than the data within it, which is compatible with the CC0 license waiver.)
Atomistic Simulations of PONI Polymers in Water
Atomistic simulations in water are run for both backbone-only 20-mers ('AA' in Figure 3c) found in the '20mer' folder and 64-mers prepared for polymer-membrane simulations (Figure 2b) found in the '64mer' folder. All atomistic simulation data are provided in '1_AA-reference' subfolders (e.g., '64mer/64mer_P1_random1/1_AA-reference' contains all atomistic simulation data for replica 1 of the P1 64-mer). The methodology for atomistic polymer setup is outlined in Figure S3.
The following scripts are used (found in the '1_AA-reference' folder):
- rotate_res.py --> Creates different cis/trans PONI polymer backbone architectures (Figure 3b or Figure S3c) from an initial all-cis structure (Figure S3b). Options include 'alt', 'block', or 'trans' used for 20-mer backbone-only polymer simulations and 'random' used for 64-mer polymer simulations. The new polymer structure is output with the extension '_new.gro'
- double_bond_dih_rest.py --> Outputs dihedral restraints needed for cis and trans alkene linkers into the terminal. This can be copy/pasted into the corresponding 20mer.top or 64mer.top topology file.
- prepare_AA_system.sh --> Places PONI polymer in initial water box and adds corresponding water molecule and Na+/Cl- ion counts to system topology file. Outputs initial .gro (20mer_solv.gro or 64mer_solv.gro) and .top (20mer_solv.top or 64mer_solv.top) for MD simulation. Example terminal inputs for solvating a randomized 64-mer (generated with rotate_res.py) in water, for example, are as follows:
- bash prepare_AA_system.sh 64mer_new.gro spc216.gro SOL 3 64mer
- run_AA_system.sh --> Executes all MD simulation steps.
Atomistic to Coarse-grained Mapping and Parameterization
The folders '2_atom-to-bead-mapping', '3_mapped', and '4_initial-CG' are provided to enable systematic coarse-grained parameterization of atomistic PONI polymer simulation data. Starting in the parent folder (e.g., '64mer/64mer_P1_random1' for replica 1 of the P1 64-mer), run the following Python script:
- make_mapping.py --> Creates a .ndx file in '2_atom-to-bead-mapping' with atoms that are mapped to each coarse-grained bead. Example terminal inputs for mapping a 64-mer P1 polymer are:
- python make_mapping.py 64mer P1
Remaining scripts can be found in their respective folders:
- 3_map_trajectory_COG.sh --> Run inside the '3_mapped' folder. Creates a mapped coarse-grained simulation trajectory (mapped.xtc)
- 4_create_CG_tpr.sh --> Run inside the '4_initial-CG' folder. Creates a coarse-grained .tpr and an initial coarse-grained configuration used for simulations in folder 6 (molecule.gro).
Coarse-grained Simulations and Parameterization
Coarse-grained simulations are run in the '6_CG-takeCURRENT' folder using an initial coarse-grained structure (molecule.gro from the '4_initial-CG' folder) that is then solvated (initial.gro) as a starting point. Before running coarse-grained simulations, the Polyply Python package should be installed (doi.org/10.1038/s41467-021-27627-4) and polymer .ff files provided in the Supplementary Information should be placed in the 'polyply/data/martini3' folder of the Polyply install location. The following scripts are used:
- cis_trans.py --> Generates a PONI polymer parameter file (PONI.itp) using the Polyply library. Can be used for either 20-mer architectures (cis, trans, alt, block) or randomized ~50:50 cis/trans 64-mer architectures (random).
- run_CG_1mol_system.sh --> Executes all MD simulation steps.
Now we have all the data necessary for PONI polymer parameterization. In the parent folder, there is a script for creating .ndx files for parameterizing bonds, angles, or dihedrals of interest:
- check_params.py --> Using the bead naming convention from Figures S9-S11 and S13, choose which bond, angle, or dihedral to parameterize. For instance, for parameterizing the B0-B1 bond, set plt_bonds = 'yes', bond1 = 'B0', and bond2 = 'B1'.
After running check_params.py, this creates .ndx files for the mapped atomistic trajectory (in the '5_target-distr' folder) and coarse-grained trajectory (in the '6_CG-takeCURRENT' folder). The .sh script in each folder (5_generate_target_distr.sh, 6_generate_CG_distr.sh) then needs to be run to generate bonded parameter histograms, which can be visualized in the parent folder plot_bonds.gnu, plot_angles.gnu, or plot_dihedrals.gnu script using gnuplot.
PONI Polymer-Membrane Simulations
All 36 PONI-Membrane Simulation folders can be found in the '64mer' folder. All simulation steps (Figure 2e-g) are executed using the run_CG_1mol_system.sh script. Analysis scripts used to generate manuscript figures can be found in the top-level directory of the tarball:
- COM.py --> Calculate z-distance between the polymer and membrane centers-of-mass to generate Figure 5a.
- Rg.py --> Calculate change in polymer radius of gyration (Rg) with time to generate Figure 5b.
- Area_Compressibility.py --> Calculate area compressibility modulus (KA) of a bilayer to generate Figure 6.
- PONI_density.py --> Calculate PONI quaternary ammonium (QA) density in the z-direction of the simulation box to generate Figure 7a.
- Water.py --> Calculate number of water beads in central z = 1 nm of membrane core with time to generate Figure 7b.
- Lipid_Enrich.py --> Calculate average enrichment of upper leaflet lipids within 1 nm of any PONI polymer bead to generate Figure 8.
- Lipid_RDF.py --> Calculate in-plane RDF of upper leaflet lipids to generate Figures S19-S22.
These analysis scripts generate raw data tables in the 'analysis_output' of each system folder, which we define below:
- COM.py --> generates 'z_distance.csv' file with simulation time (μs) in the 1st column and COM distance between polymer and membrane (in nm) in the 2nd column.
- Rg.py --> generates 'gyrate.csv' file with simulation time (μs) in the 1st column and polymer radius of gyration (Rg, in nm) in the 2nd column.
- Area_Compressibility.py --> generates 'KA_conv.csv' file with simulation time (t) in the 2nd column in ns and cumulative area compressibility modulus (KA, in mN/m) in the 3rd column.
- PONI_density.py --> generates 'qa_density.xvg' with relative position from center of membrane in z direction (in nm) in the 1st column, and polymer QA bead density (in kg m-3) in the 2nd column.
- Water.py --> generates 'Waters.csv' file with simulation time (μs) in the 1st column and number of water W beads in the membrane hydrophobic core in the 2nd column.
- Lipid_Enrich.py --> generates 'Norm_Lipid.csv' file with a column for each lipid 'Upper Leaflet Lipid Enrichment' with time.
- Lipid_RDF.py --> generates individual .txt files for each lipid in a membrane (e.g., POPE_POPE_rdf.txt for POPE lipid), each with distance (r, in nm) in the 1st column and in-plane radial distribution function (g(r), unitless) in the 2nd column.
