InitCGForceFieldParameters
Initializes and calculates the Coarse-Grained (CG) force field parameters based on the mapping from a Fine-Grained (FG) simulation.
This class processes the mapping from FG to CG representation and calculates necessary force field parameters including Lennard-Jones (LJ) parameters, bond lengths and strengths, angle and dihedral parameters. It supports setting ring constraints and customizing the force field parameter calculation for different CG models.
Attributes
mapping_item(object): Stores the provided mapping information.mol_name(str): Name of the molecule.cg_model(str): Coarse-Grained model name.num_mols(int): Number of molecules.bond_parameters(dict): Dictionary storing bond parameters.angle_parameters(dict): Dictionary storing angle parameters.dihedral_parameters(dict): Dictionary storing dihedral parameters.lj_parameters(dict, optional): Dictionary storing Lennard-Jones parameters, initialized upon callinginit_lj_parameters.
Methods
add_fg_groups(fg_groups): Assigns Fine-Grained groups to Coarse-Grained beads.init_lj_parameters(): Initializes the Lennard-Jones parameters based on CG model.init_bond_parameters(): Initializes bond parameters for the CG model.init_angle_parameters(): Initializes angle parameters for the CG model.init_dihedral_parameters(): Initializes dihedral parameters for the CG model.set_bond_parameters(traj, top, res_name, num_mol, num_atom_with_H, bond=None, group_list=None): Sets the bond parameters for the CG model using simulation data.set_angle_parameters(traj, top, res_name, num_mol, num_atom_with_H, angle=None, group_list=None): Sets the angle parameters for the CG model using simulation data.set_dihedral_parameters(traj, top, res_name, num_mol, num_atom_with_H, dihedral=None, group_list=None): Sets the dihedral parameters for the CG model using simulation data.set_bond_constraint(atom1, atom2, constraint_length, constraint_type=1): Sets a bond constraint between two atoms.
Example Usage
from AMOFMS import InitCGForceFieldParameters
mapping_item = ... # Obtain mapping information
num_mols = 100
init_cg_ff = InitCGForceFieldParameters(mapping_item, num_mols)
init_cg_ff.init_lj_parameters()
init_cg_ff.set_bond_parameters(traj, top, res_name, num_mol, num_atom_with_H)
init_cg_ff.set_angle_parameters(traj, top, res_name, num_mol, num_atom_with_H)
cg_ff_parameters = init_cg_ff.cg_ff_parameters_item
generate_system_top
Generates the system topology for a Coarse-Grained model.
Parameters
mols(list of dicts): List of molecule information dictionaries.num_mols(list of int, optional): List specifying the number of each molecule type.
Returns
- dict
A dictionary representing the system topology, including molecules and Lennard-Jones cross terms.
Example Usage
from AMOFMS import generate_system_top
mol_A = {'mol_name': 'A', 'model': 'MARTINI2', 'types': ['C1', 'C1', 'P1'], 'id': [0, 1, 2],
'charge': [0.0, 0.0, 0.0], 'mass': [57.1146, 56.1067, 59.0869],
'lj_parameters': {('P1', 'C1'): [2.7, 0.47], ('P1', 'P1'): [4.5, 0.47], ('C1', 'C1'): [3.5, 0.47]},
'bond_parameters': {(0, 1): [0.47, 1250.0], (1, 2): [0.47, 1250.0]},
'angle_parameters': {(0, 1, 2): [180.0, 25.0]}}
mol_B = {'mol_name': 'B', 'model': 'MARTINI2', 'types': ['C1', 'C1', 'P1'], 'id': [0, 1, 2],
'charge': [0.0, 0.0, 0.0], 'mass': [57.1146, 56.1067, 59.0869],
'lj_parameters': {('P1', 'C1'): [2.7, 0.47], ('P1', 'P1'): [4.5, 0.47], ('C1', 'C1'): [3.5, 0.47]},
'bond_parameters': {(0, 1): [0.47, 1250.0], (1, 2): [0.47, 1250.0]},
'angle_parameters': {(0, 1, 2): [180.0, 25.0]}}
system_top = generate_system_top(mols=[mol_A, mol_B], num_mols=[2, 3])