This module generates input files for the following programs:
Orca is used to generate the RESP charges for the polymer monomer units. The inputs are 3 monomer chains and the output is a single RESP charge file.
Antechamber is used to generate the force field parameters for the polymer monomer units. The inputs are 3 monomer chains and the output is a single force field parameter file.
We then manually create force field parameter files by reorganizing the RESP charge file and force field parameter file into a residue file.
Orca must be downloaded from the Orca website under the "Downloads" tab. Relevant AMBER tools, including Antechamber, can be downloaded in a Conda environment using the following commands:
conda create -n amber22 python=3
conda activate amber22
conda install -y -c conda-forge ambertools=22
conda install -y -c conda-forge acpype
Input structure and topology PDB files are generated inside the structure-generation
directory.
This module will take in a list of monomer names and stereochemistry and generate a PDB file with atoms correctly named for the resulting force field.
Chains must be generated in their own PDB files, but they can easily be combined using Gromacs tools.
Input structure information is then used as an input for the partial-charge-fitting
module.
This module will take in charge, multiplicity, and the PDB file to calculate electron density using Orca with HF/6-31G*.
Multiwfn is then used to calculate the RESP charges for each atom in the monomer unit.
The final RESP charges are calculated via averaging each atom over all stereochemistry combinations.
Each monomer is then calculated to have a net charge of 0 (except for PAAi), and the RESP charges are then output into a single file.
Partial charge and structure files are then fed into Antechamber to generate force field parameters for Gromacs in the gaff-parameters
module.
The force field parameters are then manually organized into a residue file for use in Gromacs.
PAAi and PAAn parameters from from Mintis et al. (2019).
We supplement these parameters for PVA and PVAc where needed using these new parameters derived from GAFF.
Monomer stereocenters are written as D-enantiomers.
Poly(vinyl alcohol) (PVA):
- Monomer Unit:
C[C@H](O)
- Caps: Left end is H, right end is H
- Residue names: LAL, ALC, RAL
Poly(vinyl acetate) (PVAc):
- Monomer Unit:
C[C@H](OC(=O)C)
- Caps: Left end is H, right end is H
- Residue names: LAC, ACE, RAC
Poly(vinyl acrylate) un-ionized (PAA or PAAN):
- Monomer Unit:
C[C@H](C(=O)O)
- Caps: Left end is H, right end is H
- Residue names: LAN, ACN, RAN
Poly(vinyl acrylate) ionized (PAA or PAAI):
- Monomer Unit:
C[C@H](C(=[O-])O)
- Caps: Left end is H, right end is H
- Residue names: LAI, ACI, RAI
We first define a random variable that can take on the values 0 or 1. This random variable is used to determine the stereochemistry of the monomer unit with 1 defined as a D-enantiomer and 0 defined as a L-enantiomer. The random variable is generated by a random number generator with a random seed.
Here are the results for up to 32 monomers grouped in 8 monomers per line:
- 1, 0, 0, 1, 1, 0, 1, 1
- 0, 0, 0, 1, 0, 1, 1, 0
- 1, 1, 1, 0, 0, 1, 0, 0
- 0, 1, 1, 1, 1, 0, 0, 0
The stereochemistry for relevant polymer chains is as follows:
- 3 monomer chain (used for RESP charge fitting) then has the following stereochemistry:
["d", "l", "l"]
. - 6 monomer chain (used for Antechamber/Acpype) then has the following stereochemistry:
["d", "l", "l", "d", "d", "l"]
. - 16 monomer chain (used for two-chain MD simulations) then has the following stereochemistry:
["d", "l", "l", "d", "d", "l", "d", "d", "l", "l", "l", "d", "l", "d", "d", "l"]
. - 32 monomer chain (used for one-chain MD simulations) then has the following stereochemistry:
["d", "l", "l", "d", "d", "l", "d", "d", "l", "l", "l", "d", "l", "d", "d", "l", "d", "d", "d", "l", "l", "d", "l", "l", "l", "d", "d", "d", "d", "l", "l", "l"]
.
The input files are generated by parameters set in the run.py
script, which imports the polymer_generator.py
module.
The output .pdb
files can then be input into Orca RESP charge fitting.
The Orca output files and .pdb
files are then input into Antechamber/Acpype to generate the force field parameters.