diff --git a/polytop_examples/dendrimer_ethylamine.py b/polytop_examples/dendrimer_ethylamine.py index 4a0d200..cb25ada 100644 --- a/polytop_examples/dendrimer_ethylamine.py +++ b/polytop_examples/dendrimer_ethylamine.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python + # Construction of an ethylamine dendrimer # Import required Classes from PolyTop diff --git a/polytop_examples/linear_PEI.py b/polytop_examples/linear_PEI.py index 0a24f28..1663c17 100644 --- a/polytop_examples/linear_PEI.py +++ b/polytop_examples/linear_PEI.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python + # Construction of a simple linear homopolymer of PEI # This polymer will be 20 monomers long and constructed by joining Atom N71 to diff --git a/polytop_examples/star_PEG.py b/polytop_examples/star_PEG.py index 86ed8d7..c5ccb12 100644 --- a/polytop_examples/star_PEG.py +++ b/polytop_examples/star_PEG.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python + # Construction of a 4-arm PEG star polymer from single monomeric units # Import required Classes from PolyTop diff --git a/star_polymer_validation/build_itp.py b/star_polymer_validation/build_itp.py new file mode 100644 index 0000000..e8ccf17 --- /dev/null +++ b/star_polymer_validation/build_itp.py @@ -0,0 +1,146 @@ +# Construction of a 4-arm PEG star polymer from single monomeric units + +# Import required Classes from PolyTop +from polytop.Junction import Junction +from polytop.Monomer import Monomer +from polytop.Visualize import Visualize +from polytop.Polymer import Polymer +from polytop.Topology import Topology + + +# ----- Load in monomer Topologies from the extended monomer ITP files ----- + +# Topology format is 'gromos' by default, but it is recommended to specify the +# format for clarity and readability. +ethanol = Topology.from_ITP("monomers/extended_ethanol.itp", format="gromos") # main arm monomer +methane = Topology.from_ITP("monomers/extended_methane.itp", format="gromos") # terminal monomer +neopentane = Topology.from_ITP("monomers/extended_neopentane.itp", format="gromos") # central monomer + + +# ----- Create Junctions for the different Monomers to join to and from ----- + +# Provide the bonding atom and the leaving atom, in that order, for the Junction +# The two atoms used to create a Junction MUST have a bond between them. + +# Note that junctions are specified for extend() by their name attribute and +# NOT by the variable name they are assigned to (which are instead used to pass +# them into a Monomer object). + +# You will see that all of the Junctions created below have a unique name to +# prevent randomisation or uncertainty in the extension, and thus ensure repeatability. + +# Create unique Junctions for the Monomers that make up each of the 4 arms of +# the star, as well as the central Monomer and the terminal Monomers. + +# Junctions for the central 'neopentane' Monomer that will initiate the Polymer +# One junction for each of the arms of the star +j1 = Junction(neopentane.get_atom("C1"), neopentane.get_atom("O1"), name = "branch1") +j2 = Junction(neopentane.get_atom("C3"), neopentane.get_atom("O2"), name = "branch2") +j3 = Junction(neopentane.get_atom("C4"), neopentane.get_atom("O3"), name = "branch3") +j4 = Junction(neopentane.get_atom("C5"), neopentane.get_atom("O4"), name = "branch4") + +# Junctions for each of the ethanol 'arm' Monomers +# The 'oxy*' Junctions will join to one of the central 'neopentane' Monomer +# Junctions (branch*), while the 'carb*'Junctions will join to an incoming +# ethanol Monomer to extend that arm further. Such that branch1 Junction joins +# to oxy1 Junction, and the carb1 Junction of the same Monomer will join to +# another incoming Monomer's oxy1 Junction. +oxy_j1 = Junction(ethanol.get_atom("O1"), ethanol.get_atom("C1"), name = "oxy1") +carb_j1 = Junction(ethanol.get_atom("C3"), ethanol.get_atom("O2"), name = "carb1") +oxy_j2 = Junction(ethanol.get_atom("O1"), ethanol.get_atom("C1"), name = "oxy2") +carb_j2 = Junction(ethanol.get_atom("C3"), ethanol.get_atom("O2"), name = "carb2") +oxy_j3 = Junction(ethanol.get_atom("O1"), ethanol.get_atom("C1"), name = "oxy3") +carb_j3 = Junction(ethanol.get_atom("C3"), ethanol.get_atom("O2"), name = "carb3") +oxy_j4 = Junction(ethanol.get_atom("O1"), ethanol.get_atom("C1"), name = "oxy4") +carb_j4 = Junction(ethanol.get_atom("C3"), ethanol.get_atom("O2"), name = "carb4") + +# Junctions for the 'terminal' Monomer that will terminate the Polymer's arms +# Note how only 1 Junction is created for the terminal Monomer, as this will +# act to cap the Polymer and prevent further extension as there will be no +# remaining Junctions. +# The 'term' Junction will join to the final 'ethanol' Monomer Junction (carb*) +term_j = Junction(methane.get_atom("C1"), methane.get_atom("O1"), name = "term") + + +# ----- Create Monomers from their Topologies and any specified Junctions ----- + +# Note that a unique Monomer has been created for each of the 4 arms with +# different Junctions, which ensures that only Monomers of the same type are +# joined to create the same arm, which means that all 4 arms will be the same +# desired length. +# If all Monomers had Junctions with the same names the polymerisation would be +# random and each of the arms would be different lengths. The lengths of each +# branch would also vary each time you built the Polymer, which is terrible for +# scientific replicability! +e1 = Monomer(ethanol, [oxy_j1, carb_j1]) +e2 = Monomer(ethanol, [oxy_j2, carb_j2]) +e3 = Monomer(ethanol, [oxy_j3, carb_j3]) +e4 = Monomer(ethanol, [oxy_j4, carb_j4]) + +central = Monomer(neopentane, [j1, j2, j3, j4]) + +terminal = Monomer(methane, [term_j]) # only needs one junction to join to the ends of each arm + + +# ----- Start the Polymer with one Monomer ----- + +# Only a Polymer object has access to the 'extend()' and 'extra_bond()' +# functions needed to join monomers together, so the first Monomer object must +# be converted to a Polymer object to build from. +# Since the polymer will be built starting from the 'central' Monomer and +# radiating outwards, the 'central' Monomer will be used to start the Polymer. +four_polymer = Polymer(central) + + +# ----- Extending the Polymer to reach the desired structure ----- + +# The extend() function joins an incoming Monomer object to the Polymer object +# that is invoking the method (in this case 'four_polymer'). +# The argument 'from_junction_name' specifies which Junction (by its name) in +# the Polymer will form a new bond to the incoming Monomer, while the argument +# 'to_junction_name' is the Junction in the incoming Monomer that will form a +# bond to the Polymer. Such that the Polymer Junction's 'monomer atom' will +# join to the Monomer Junction's 'monomer atom' and both of their 'leaving atoms' +# will be discarded. +# To ensure that you generate a valid topology, the two Junctions you join +# should have corresponding atoms and the same bond, angle and dihedral +# parameters, which will be ensured by using an appropriately extended topology +# and defining Junctions correctly. + +# attach three ethanols to each of the four junctions (branch1-branch4) of the +# central monomer, by extending each arm by 1 ethanol at a time. Extend from +# carb* or branch* Junctions to the matching numbered oxy* Junctions, and then +# finally from a carb* Junction to a "term" Junction. +four_polymer.extend(e1, from_junction_name="branch1", to_junction_name="oxy1") +four_polymer.extend(e2, from_junction_name="branch2", to_junction_name="oxy2") +four_polymer.extend(e3, from_junction_name="branch3", to_junction_name="oxy3") +four_polymer.extend(e4, from_junction_name="branch4", to_junction_name="oxy4") + +four_polymer.extend(e1, from_junction_name="carb1", to_junction_name="oxy1") +four_polymer.extend(e2, from_junction_name="carb2", to_junction_name="oxy2") +four_polymer.extend(e3, from_junction_name="carb3", to_junction_name="oxy3") +four_polymer.extend(e4, from_junction_name="carb4", to_junction_name="oxy4") + +four_polymer.extend(e1, from_junction_name="carb1", to_junction_name="oxy1") +four_polymer.extend(e2, from_junction_name="carb2", to_junction_name="oxy2") +four_polymer.extend(e3, from_junction_name="carb3", to_junction_name="oxy3") +four_polymer.extend(e4, from_junction_name="carb4", to_junction_name="oxy4") + +four_polymer.extend(terminal, from_junction_name="carb1", to_junction_name="term") +four_polymer.extend(terminal, from_junction_name="carb2", to_junction_name="term") +four_polymer.extend(terminal, from_junction_name="carb3", to_junction_name="term") +four_polymer.extend(terminal, from_junction_name="carb4", to_junction_name="term") + +# Optionally (but recommended), check the netcharge of the monomers is +# preserved and give it a descriptive name +print(f"netcharge = {four_polymer.topology.netcharge}") +four_polymer.topology.title = "four arm star polymer" # rename your ITP header and image name + + +# ----- Save the polymer dendrimer to an itp file ----- + +# Optionally, use Visualize to generate an image of the structure with RDKit +# for an easy visual structure check +four_polymer.save_to_file('polymers/star_polymer.json') # optional, text dump in a dictionary format +four_polymer.topology.to_ITP('polymers/star_polymer.itp') # write the itp to be used for simulation +Visualize.polymer(four_polymer,infer_bond_order=False).draw2D('polymers/star_polymer.png',(400,300)) # optional, visualize the structure in 2D \ No newline at end of file diff --git a/star_polymer_validation/build_pdb.py b/star_polymer_validation/build_pdb.py new file mode 100644 index 0000000..6c2d77f --- /dev/null +++ b/star_polymer_validation/build_pdb.py @@ -0,0 +1,286 @@ + +from polyconf.Monomer import Monomer +from polyconf.Polymer import Polymer +from polyconf.PDB import PDB + +star = Polymer(Monomer('monomers/extended_neopentane.pdb')) + +# join first layer of ethanols +first = star.maxresid() +star.extend( + Monomer('monomers/extended_ethanol.pdb'), + n=first, + nn=star.newresid(), + names=dict(P='O1', Q='O1', R='C1', S='C1'), + joins=[('C1', 'O1')], +) +star.extend( + Monomer('monomers/extended_ethanol.pdb'), + n=first, + nn=star.newresid(), + names=dict(P='O1', Q='O2', R='C1', S='C3'), + joins=[('C3', 'O1')], +) +star.extend( + Monomer('monomers/extended_ethanol.pdb'), + n=first, + nn=star.newresid(), + names=dict(P='O1', Q='O3', R='C1', S='C4'), + joins=[('C4', 'O1')], +) +star.extend( + Monomer('monomers/extended_ethanol.pdb'), + n=first, + nn=star.newresid(), + names=dict(P='O1', Q='O4', R='C1', S='C5'), + joins=[('C5', 'O1')], +) +star.renamer(first, 'O1 O2 O3 O4 H12 H1 H6 H9') +for i in range(2, 6): + star.renamer(i, 'C1') + +# add second layer of ethanol +star.extend( + Monomer('monomers/extended_ethanol.pdb'), + n=first+1, + nn=star.newresid(), + names=dict(P='O1', Q='O2', R='C1', S='C3'), + joins=[('C3', 'O1')], +) +star.extend( + Monomer('monomers/extended_ethanol.pdb'), + n=first+2, + nn=star.newresid(), + names=dict(P='O1', Q='O2', R='C1', S='C3'), + joins=[('C3', 'O1')], +) +star.extend( + Monomer('monomers/extended_ethanol.pdb'), + n=first+3, + nn=star.newresid(), + names=dict(P='O1', Q='O2', R='C1', S='C3'), + joins=[('C3', 'O1')], +) +star.extend( + Monomer('monomers/extended_ethanol.pdb'), + n=first+4, + nn=star.newresid(), + names=dict(P='O1', Q='O2', R='C1', S='C3'), + joins=[('C3', 'O1')], +) +for i in range(2, 6): + star.renamer(i, 'O2 H8') +for i in range(6, 10): + star.renamer(i, 'C1') + +# add third layer of ethanol +star.extend( + Monomer('monomers/extended_ethanol.pdb'), + n=first+5, + nn=star.newresid(), + names=dict(P='O1', Q='O2', R='C1', S='C3'), + joins=[('C3', 'O1')], +) +star.extend( + Monomer('monomers/extended_ethanol.pdb'), + n=first+6, + nn=star.newresid(), + names=dict(P='O1', Q='O2', R='C1', S='C3'), + joins=[('C3', 'O1')], +) +star.extend( + Monomer('monomers/extended_ethanol.pdb'), + n=first+7, + nn=star.newresid(), + names=dict(P='O1', Q='O2', R='C1', S='C3'), + joins=[('C3', 'O1')], +) +star.extend( + Monomer('monomers/extended_ethanol.pdb'), + n=first+8, + nn=star.newresid(), + names=dict(P='O1', Q='O2', R='C1', S='C3'), + joins=[('C3', 'O1')], +) +for i in range(6, 10): + star.renamer(i, 'O2 H8') +for i in range(10, 14): + star.renamer(i, 'C1') + +# add caps +star.extend( + Monomer('monomers/extended_methane.pdb'), + n=first+9, + nn=star.newresid(), + names=dict(P='C1', Q='O2', R='O1', S='C3'), + joins=[('C3', 'C1')], +) +star.extend( + Monomer('monomers/extended_methane.pdb'), + n=first+10, + nn=star.newresid(), + names=dict(P='C1', Q='O2', R='O1', S='C3'), + joins=[('C3', 'C1')], +) +star.extend( + Monomer('monomers/extended_methane.pdb'), + n=first+11, + nn=star.newresid(), + names=dict(P='C1', Q='O2', R='O1', S='C3'), + joins=[('C3', 'C1')], +) +star.extend( + Monomer('monomers/extended_methane.pdb'), + n=first+12, + nn=star.newresid(), + names=dict(P='C1', Q='O2', R='O1', S='C3'), + joins=[('C3', 'C1')], +) +for i in range(10, 14): + star.renamer(i, 'O2 H8') +for i in range(14, 18): + star.renamer(i, 'O1 H4') + +Saver = PDB(star) +Saver.cleanup() +Saver.save(dummies='X*',fname=f'polymers/star_polymer') + +# dihedrals = star.gen_pairlist(J='N1',K='C1',first_resid=1,last_resid=127,mult=3,same_res=False) + + + +# # join first layer of ethanols +# first = star.maxresid() +# star.extend( +# Monomer('monomers/extended_ethanol.pdb'), +# n=first, +# nn=2, +# names=dict(P='O1', Q='O1', R='C1', S='C1'), +# joins=[('C1', 'O1')], +# ) +# star.extend( +# Monomer('monomers/extended_ethanol.pdb'), +# n=first, +# nn=6, +# names=dict(P='O1', Q='O2', R='C1', S='C3'), +# joins=[('C3', 'O1')], +# ) +# star.extend( +# Monomer('monomers/extended_ethanol.pdb'), +# n=first, +# nn=10, +# names=dict(P='O1', Q='O3', R='C1', S='C4'), +# joins=[('C4', 'O1')], +# ) +# star.extend( +# Monomer('monomers/extended_ethanol.pdb'), +# n=first, +# nn=14, +# names=dict(P='O1', Q='O4', R='C1', S='C5'), +# joins=[('C5', 'O1')], +# ) +# star.renamer(first, 'O1 O2 O3 O4 H12 H1 H6 H9') +# for i in range(2, 6): +# star.renamer(i, 'C1') + +# # add second layer of ethanol +# star.extend( +# Monomer('monomers/extended_ethanol.pdb'), +# n=2, +# nn=3, +# names=dict(P='O1', Q='O2', R='C1', S='C3'), +# joins=[('C3', 'O1')], +# ) +# star.extend( +# Monomer('monomers/extended_ethanol.pdb'), +# n=6, +# nn=7, +# names=dict(P='O1', Q='O2', R='C1', S='C3'), +# joins=[('C3', 'O1')], +# ) +# star.extend( +# Monomer('monomers/extended_ethanol.pdb'), +# n=10, +# nn=11, +# names=dict(P='O1', Q='O2', R='C1', S='C3'), +# joins=[('C3', 'O1')], +# ) +# star.extend( +# Monomer('monomers/extended_ethanol.pdb'), +# n=14, +# nn=15, +# names=dict(P='O1', Q='O2', R='C1', S='C3'), +# joins=[('C3', 'O1')], +# ) +# for i in range(2, 6): +# star.renamer(i, 'O2 H8') +# for i in range(6, 10): +# star.renamer(i, 'C1') + +# # add third layer of ethanol +# star.extend( +# Monomer('monomers/extended_ethanol.pdb'), +# n=3, +# nn=4, +# names=dict(P='O1', Q='O2', R='C1', S='C3'), +# joins=[('C3', 'O1')], +# ) +# star.extend( +# Monomer('monomers/extended_ethanol.pdb'), +# n=7, +# nn=8, +# names=dict(P='O1', Q='O2', R='C1', S='C3'), +# joins=[('C3', 'O1')], +# ) +# star.extend( +# Monomer('monomers/extended_ethanol.pdb'), +# n=11, +# nn=12, +# names=dict(P='O1', Q='O2', R='C1', S='C3'), +# joins=[('C3', 'O1')], +# ) +# star.extend( +# Monomer('monomers/extended_ethanol.pdb'), +# n=15, +# nn=16, +# names=dict(P='O1', Q='O2', R='C1', S='C3'), +# joins=[('C3', 'O1')], +# ) +# for i in range(6, 10): +# star.renamer(i, 'O2 H8') +# for i in range(10, 14): +# star.renamer(i, 'C1') + +# # add caps +# star.extend( +# Monomer('monomers/extended_methane.pdb'), +# n=4, +# nn=5, +# names=dict(P='C1', Q='O2', R='O1', S='C3'), +# joins=[('C3', 'C1')], +# ) +# star.extend( +# Monomer('monomers/extended_methane.pdb'), +# n=8, +# nn=9, +# names=dict(P='C1', Q='O2', R='O1', S='C3'), +# joins=[('C3', 'C1')], +# ) +# star.extend( +# Monomer('monomers/extended_methane.pdb'), +# n=12, +# nn=13, +# names=dict(P='C1', Q='O2', R='O1', S='C3'), +# joins=[('C3', 'C1')], +# ) +# star.extend( +# Monomer('monomers/extended_methane.pdb'), +# n=16, +# nn=17, +# names=dict(P='C1', Q='O2', R='O1', S='C3'), +# joins=[('C3', 'C1')], +# ) +# for i in range(10, 14): +# star.renamer(i, 'O2 H8') +# for i in range(14, 18): +# star.renamer(i, 'O1 H4') diff --git a/star_polymer_validation/monomers/extended_ethanol.itp b/star_polymer_validation/monomers/extended_ethanol.itp new file mode 100644 index 0000000..bcf1e30 --- /dev/null +++ b/star_polymer_validation/monomers/extended_ethanol.itp @@ -0,0 +1,101 @@ +;----------------------------TITLE ----------------------------------------------------------------------------------------- +; methoxyethanol +; +; This file was generated at 13:30 on 2025-02-19 by +; +; Automatic Topology Builder +; +; REVISION 2025-01-17 09:57:26 +;--------------------------------------------------------------------------------------------------------------------------- +; Authors : Martin Stroet, Bertrand Caron, Alpeshkumar K. Malde, Thomas Lee, Alan E. Mark +; +; Institute : Molecular Dynamics group, +; School of Chemistry and Molecular Biosciences (SCMB), +; The University of Queensland, QLD 4072, Australia +; URL : https://atb.uq.edu.au +; Citations : 1. Malde AK, Zuo L, Breeze M, Stroet M, Poger D, Nair PC, Oostenbrink C, Mark AE. +; An Automated force field Topology Builder (ATB) and repository: version 1.0. +; Journal of Chemical Theory and Computation, 2011, 7, 4026-4037. +; 2. Stroet M, Caron B, Visscher K, Geerke D, Malde AK, Mark AE. +; Automated Topology Builder version 3.0: Prediction of solvation free enthalpies in water and hexane. +; DOI:10.1021/acs.jctc.8b00768 +; +; Disclaimer : +; While every effort has been made to ensure the accuracy and validity of parameters provided below +; the assignment of parameters is being based on an automated procedure combining data provided by a +; given user as well as calculations performed using third party software. They are provided as a guide. +; The authors of the ATB cannot guarantee that the parameters are complete or that the parameters provided +; are appropriate for use in any specific application. Users are advised to treat these parameters with discretion +; and to perform additional validation tests for their specific application if required. Neither the authors +; of the ATB or The University of Queensland except any responsibly for how the parameters may be used. +; +; Release notes and warnings: +; (1) The topology is based on a set of atomic coordinates and other data provided by the user after +; after quantum mechanical optimization of the structure using different levels of theory depending on +; the nature of the molecule. +; (2) In some cases the automatic bond, bond angle and dihedral type assignment is ambiguous. +; In these cases alternative type codes are provided at the end of the line. +; (3) While bonded parameters are taken where possible from the nominated force field non-standard bond, angle and dihedral +; type code may be incorporated in cases where an exact match could not be found. These are marked as "non-standard" +; or "uncertain" in comments. +; (4) In some cases it is not possible to assign an appropriate parameter automatically. "%%" is used as a place holder +; for those fields that could not be determined automatically. The parameters in these fields must be assigned manually +; before the file can be used. +;--------------------------------------------------------------------------------------------------------------------------- +; Input Structure : 4Y3B +; Output : UNITED ATOM topology +; Use in conjunction with the corresponding united atom PDB file. +;--------------------------------------------------------------------------------------------------------------------------- +; Citing this topology file +; ATB molid: 27162 +; ATB Topology Hash: 98e1e +;--------------------------------------------------------------------------------------------------------------------------- +; Final Topology Generation was performed using: +; A B3LYP/6-31G* optimized geometry. +; Bonded and van der Waals parameters were taken from the GROMOS 54A7 parameter set. +; Initial charges were estimated using the ESP method of Merz-Kollman. +; Final charges and charge groups were generated by method described in the ATB paper. +; If required, additional bonded parameters were generated from a Hessian matrix calculated at the B3LYP/6-31G* level of theory. +;--------------------------------------------------------------------------------------------------------------------------- +; +; +[ moleculetype ] +; Name nrexcl +4Y3B 3 +[ atoms ] +; nr type resnr resid atom cgnr charge mass + 1 H 1 4Y3B H8 1 0.448 1.0080 + 2 OAlc 1 4Y3B O2 2 -0.700 15.9994 + 3 CH2 1 4Y3B C3 3 0.209 14.0270 + 4 CH2 1 4Y3B C2 4 0.299 14.0270 + 5 OE 1 4Y3B O1 5 -0.491 15.9994 + 6 CH3 1 4Y3B C1 6 0.235 15.0350 +; total charge of the molecule: 0.000 +[ bonds ] +; ai aj funct c0 c1 + 1 2 2 0.0972 1.9581e+07 + 2 3 2 0.1430 8.1800e+06 + 3 4 2 0.1530 7.1500e+06 + 4 5 2 0.1430 8.1800e+06 + 5 6 2 0.1430 8.1800e+06 +[ pairs ] +; ai aj funct ; all 1-4 pairs but the ones excluded in GROMOS itp + 1 4 1 + 2 5 1 + 3 6 1 +[ angles ] +; ai aj ak funct angle fc + 1 2 3 2 109.50 450.00 + 2 3 4 2 109.50 520.00 + 3 4 5 2 111.00 530.00 + 4 5 6 2 109.50 450.00 +[ dihedrals ] +; GROMOS improper dihedrals +; ai aj ak al funct angle fc +[ dihedrals ] +; ai aj ak al funct ph0 cp mult + 1 2 3 4 1 0.00 1.26 3 + 2 3 4 5 1 0.00 5.92 3 + 3 4 5 6 1 0.00 1.26 3 +[ exclusions ] +; ai aj funct ; GROMOS 1-4 exclusions \ No newline at end of file diff --git a/star_polymer_validation/monomers/extended_ethanol.pdb b/star_polymer_validation/monomers/extended_ethanol.pdb new file mode 100644 index 0000000..d32ed2b --- /dev/null +++ b/star_polymer_validation/monomers/extended_ethanol.pdb @@ -0,0 +1,17 @@ +HEADER UNCLASSIFIED 19-Feb-25 +TITLE UNITED ATOM STRUCTURE FOR MOLECULE UNL +AUTHOR AUTOMATED TOPOLOGY BUILDER (ATB) REVISION 2025-01-17 09:57:26 +AUTHOR 2 https://atb.uq.edu.au +HETATM 1 H8 4Y3B 0 -2.903 -0.697 0.160 1.00 0.00 H +HETATM 2 O2 4Y3B 0 -2.261 -0.071 -0.211 1.00 0.00 O +HETATM 3 C3 4Y3B 0 -0.992 -0.354 0.376 1.00 0.00 C +HETATM 4 C2 4Y3B 0 0.014 0.615 -0.245 1.00 0.00 C +HETATM 5 O1 4Y3B 0 1.311 0.486 0.320 1.00 0.00 O +HETATM 6 C1 4Y3B 0 2.076 -0.583 -0.222 1.00 0.00 C +CONECT 1 2 +CONECT 2 1 3 +CONECT 3 2 4 +CONECT 4 3 5 +CONECT 5 4 6 +CONECT 6 5 +END diff --git a/star_polymer_validation/monomers/extended_methane.itp b/star_polymer_validation/monomers/extended_methane.itp new file mode 100644 index 0000000..f05d417 --- /dev/null +++ b/star_polymer_validation/monomers/extended_methane.itp @@ -0,0 +1,86 @@ +;----------------------------TITLE ----------------------------------------------------------------------------------------- +; Methanol +; +; This file was generated at 13:31 on 2025-02-19 by +; +; Automatic Topology Builder +; +; REVISION 2025-01-17 09:57:26 +;--------------------------------------------------------------------------------------------------------------------------- +; Authors : Martin Stroet, Bertrand Caron, Alpeshkumar K. Malde, Thomas Lee, Alan E. Mark +; +; Institute : Molecular Dynamics group, +; School of Chemistry and Molecular Biosciences (SCMB), +; The University of Queensland, QLD 4072, Australia +; URL : https://atb.uq.edu.au +; Citations : 1. Malde AK, Zuo L, Breeze M, Stroet M, Poger D, Nair PC, Oostenbrink C, Mark AE. +; An Automated force field Topology Builder (ATB) and repository: version 1.0. +; Journal of Chemical Theory and Computation, 2011, 7, 4026-4037. +; 2. Stroet M, Caron B, Visscher K, Geerke D, Malde AK, Mark AE. +; Automated Topology Builder version 3.0: Prediction of solvation free enthalpies in water and hexane. +; DOI:10.1021/acs.jctc.8b00768 +; +; Disclaimer : +; While every effort has been made to ensure the accuracy and validity of parameters provided below +; the assignment of parameters is being based on an automated procedure combining data provided by a +; given user as well as calculations performed using third party software. They are provided as a guide. +; The authors of the ATB cannot guarantee that the parameters are complete or that the parameters provided +; are appropriate for use in any specific application. Users are advised to treat these parameters with discretion +; and to perform additional validation tests for their specific application if required. Neither the authors +; of the ATB or The University of Queensland except any responsibly for how the parameters may be used. +; +; Release notes and warnings: +; (1) The topology is based on a set of atomic coordinates and other data provided by the user after +; after quantum mechanical optimization of the structure using different levels of theory depending on +; the nature of the molecule. +; (2) In some cases the automatic bond, bond angle and dihedral type assignment is ambiguous. +; In these cases alternative type codes are provided at the end of the line. +; (3) While bonded parameters are taken where possible from the nominated force field non-standard bond, angle and dihedral +; type code may be incorporated in cases where an exact match could not be found. These are marked as "non-standard" +; or "uncertain" in comments. +; (4) In some cases it is not possible to assign an appropriate parameter automatically. "%%" is used as a place holder +; for those fields that could not be determined automatically. The parameters in these fields must be assigned manually +; before the file can be used. +;--------------------------------------------------------------------------------------------------------------------------- +; Input Structure : 45ZJ +; Output : UNITED ATOM topology +; Use in conjunction with the corresponding united atom PDB file. +;--------------------------------------------------------------------------------------------------------------------------- +; Citing this topology file +; ATB molid: 331724 +; ATB Topology Hash: d7896 +;--------------------------------------------------------------------------------------------------------------------------- +; Final Topology Generation was performed using: +; A B3LYP/6-31G* optimized geometry. +; Bonded and van der Waals parameters were taken from the GROMOS 54A7 parameter set. +; Initial charges were estimated using the ESP method of Merz-Kollman. +; Final charges and charge groups were generated by method described in the ATB paper. +; If required, additional bonded parameters were generated from a Hessian matrix calculated at the B3LYP/6-31G* level of theory. +;--------------------------------------------------------------------------------------------------------------------------- +; +; +[ moleculetype ] +; Name nrexcl +45ZJ 3 +[ atoms ] +; nr type resnr resid atom cgnr charge mass + 1 H 1 45ZJ H4 1 0.398 1.0080 + 2 OAlc 1 45ZJ O1 2 -0.641 15.9994 + 3 CH3 1 45ZJ C1 3 0.243 15.0350 +; total charge of the molecule: 0.000 +[ bonds ] +; ai aj funct c0 c1 + 1 2 2 0.0972 1.9581e+07 + 2 3 2 0.1430 8.1800e+06 +[ pairs ] +; ai aj funct ; all 1-4 pairs but the ones excluded in GROMOS itp +[ angles ] +; ai aj ak funct angle fc + 1 2 3 2 109.50 450.00 +[ dihedrals ] +; GROMOS improper dihedrals +; ai aj ak al funct angle fc +[ dihedrals ] +; ai aj ak al funct ph0 cp mult +[ exclusions ] +; ai aj funct ; GROMOS 1-4 exclusions diff --git a/star_polymer_validation/monomers/extended_methane.pdb b/star_polymer_validation/monomers/extended_methane.pdb new file mode 100644 index 0000000..a933b27 --- /dev/null +++ b/star_polymer_validation/monomers/extended_methane.pdb @@ -0,0 +1,11 @@ +HEADER UNCLASSIFIED 19-Feb-25 +TITLE UNITED ATOM STRUCTURE FOR MOLECULE UNK +AUTHOR AUTOMATED TOPOLOGY BUILDER (ATB) REVISION 2025-01-17 09:57:26 +AUTHOR 2 https://atb.uq.edu.au +HETATM 1 H4 45ZJ 0 1.041 0.847 0.009 1.00 0.00 H +HETATM 2 O1 45ZJ 0 0.705 -0.063 -0.007 1.00 0.00 O +HETATM 3 C1 45ZJ 0 -0.719 0.011 -0.001 1.00 0.00 C +CONECT 1 2 +CONECT 2 1 3 +CONECT 3 2 +END diff --git a/star_polymer_validation/monomers/extended_neopentane.itp b/star_polymer_validation/monomers/extended_neopentane.itp new file mode 100644 index 0000000..30e31a0 --- /dev/null +++ b/star_polymer_validation/monomers/extended_neopentane.itp @@ -0,0 +1,143 @@ +;----------------------------TITLE ----------------------------------------------------------------------------------------- +; Pentaerythritol +; +; This file was generated at 00:34 on 2025-02-06 by +; +; Automatic Topology Builder +; +; REVISION 2025-01-17 09:57:26 +;--------------------------------------------------------------------------------------------------------------------------- +; Authors : Martin Stroet, Bertrand Caron, Alpeshkumar K. Malde, Thomas Lee, Alan E. Mark +; +; Institute : Molecular Dynamics group, +; School of Chemistry and Molecular Biosciences (SCMB), +; The University of Queensland, QLD 4072, Australia +; URL : https://atb.uq.edu.au +; Citations : 1. Malde AK, Zuo L, Breeze M, Stroet M, Poger D, Nair PC, Oostenbrink C, Mark AE. +; An Automated force field Topology Builder (ATB) and repository: version 1.0. +; Journal of Chemical Theory and Computation, 2011, 7, 4026-4037. +; 2. Stroet M, Caron B, Visscher K, Geerke D, Malde AK, Mark AE. +; Automated Topology Builder version 3.0: Prediction of solvation free enthalpies in water and hexane. +; DOI:10.1021/acs.jctc.8b00768 +; +; Disclaimer : +; While every effort has been made to ensure the accuracy and validity of parameters provided below +; the assignment of parameters is being based on an automated procedure combining data provided by a +; given user as well as calculations performed using third party software. They are provided as a guide. +; The authors of the ATB cannot guarantee that the parameters are complete or that the parameters provided +; are appropriate for use in any specific application. Users are advised to treat these parameters with discretion +; and to perform additional validation tests for their specific application if required. Neither the authors +; of the ATB or The University of Queensland except any responsibly for how the parameters may be used. +; +; Release notes and warnings: +; (1) The topology is based on a set of atomic coordinates and other data provided by the user after +; after quantum mechanical optimization of the structure using different levels of theory depending on +; the nature of the molecule. +; (2) In some cases the automatic bond, bond angle and dihedral type assignment is ambiguous. +; In these cases alternative type codes are provided at the end of the line. +; (3) While bonded parameters are taken where possible from the nominated force field non-standard bond, angle and dihedral +; type code may be incorporated in cases where an exact match could not be found. These are marked as "non-standard" +; or "uncertain" in comments. +; (4) In some cases it is not possible to assign an appropriate parameter automatically. "%%" is used as a place holder +; for those fields that could not be determined automatically. The parameters in these fields must be assigned manually +; before the file can be used. +;--------------------------------------------------------------------------------------------------------------------------- +; Input Structure : 8WDY +; Output : UNITED ATOM topology +; Use in conjunction with the corresponding united atom PDB file. +;--------------------------------------------------------------------------------------------------------------------------- +; Citing this topology file +; ATB molid: 39051 +; ATB Topology Hash: 07f0b +;--------------------------------------------------------------------------------------------------------------------------- +; Final Topology Generation was performed using: +; A B3LYP/6-31G* optimized geometry. +; Bonded and van der Waals parameters were taken from the GROMOS 54A7 parameter set. +; Initial charges were estimated using the ESP method of Merz-Kollman. +; Final charges and charge groups were generated by method described in the ATB paper. +; If required, additional bonded parameters were generated from a Hessian matrix calculated at the B3LYP/6-31G* level of theory. +;--------------------------------------------------------------------------------------------------------------------------- +; +; +[ moleculetype ] +; Name nrexcl +8WDY 3 +[ atoms ] +; nr type resnr resid atom cgnr charge mass + 1 HS14 1 8WDY H12 1 0.394 1.0080 + 2 OAlc 1 8WDY O4 2 -0.654 15.9994 + 3 CH2 1 8WDY C5 3 0.241 14.0270 + 4 C 1 8WDY C2 4 0.076 12.0110 + 5 CH2 1 8WDY C1 5 0.241 14.0270 + 6 OAlc 1 8WDY O1 6 -0.654 15.9994 + 7 HS14 1 8WDY H1 7 0.394 1.0080 + 8 CH2 1 8WDY C3 8 0.241 14.0270 + 9 OAlc 1 8WDY O2 9 -0.654 15.9994 + 10 HS14 1 8WDY H6 10 0.394 1.0080 + 11 CH2 1 8WDY C4 11 0.241 14.0270 + 12 OAlc 1 8WDY O3 12 -0.654 15.9994 + 13 HS14 1 8WDY H9 13 0.394 1.0080 +; total charge of the molecule: 0.000 +[ bonds ] +; ai aj funct c0 c1 + 1 2 2 0.0972 1.9581e+07 + 2 3 2 0.1430 8.1800e+06 + 3 4 2 0.1540 4.0057e+06 + 4 5 2 0.1540 4.0057e+06 + 4 8 2 0.1540 4.0057e+06 + 4 11 2 0.1540 4.0057e+06 + 5 6 2 0.1430 8.1800e+06 + 6 7 2 0.0972 1.9581e+07 + 8 9 2 0.1430 8.1800e+06 + 9 10 2 0.0972 1.9581e+07 + 11 12 2 0.1430 8.1800e+06 + 12 13 2 0.0972 1.9581e+07 +[ pairs ] +; ai aj funct ; all 1-4 pairs but the ones excluded in GROMOS itp + 1 4 1 + 2 5 1 + 2 8 1 + 2 11 1 + 3 6 1 + 3 9 1 + 3 12 1 + 4 7 1 + 4 10 1 + 4 13 1 + 5 9 1 + 5 12 1 + 6 8 1 + 6 11 1 + 8 12 1 + 9 11 1 +[ angles ] +; ai aj ak funct angle fc + 1 2 3 2 109.50 450.00 + 2 3 4 2 115.00 610.00 + 3 4 5 2 109.50 520.00 + 3 4 8 2 109.50 520.00 + 3 4 11 2 109.50 520.00 + 5 4 8 2 109.50 520.00 + 5 4 11 2 109.50 520.00 + 8 4 11 2 109.50 520.00 + 4 5 6 2 115.00 610.00 + 5 6 7 2 109.50 450.00 + 4 8 9 2 115.00 610.00 + 8 9 10 2 109.50 450.00 + 4 11 12 2 115.00 610.00 + 11 12 13 2 109.50 450.00 +[ dihedrals ] +; GROMOS improper dihedrals +; ai aj ak al funct angle fc +[ dihedrals ] +; ai aj ak al funct ph0 cp mult + 1 2 3 4 1 0.00 1.26 3 + 2 3 4 5 1 0.00 5.92 3 + 4 5 6 7 1 0.00 1.26 3 + 4 8 9 10 1 0.00 1.26 3 + 4 11 12 13 1 0.00 1.26 3 + 5 4 8 9 1 0.00 5.92 3 + 5 4 11 12 1 0.00 5.92 3 + 8 4 5 6 1 0.00 5.92 3 +[ exclusions ] +; ai aj funct ; GROMOS 1-4 exclusions \ No newline at end of file diff --git a/star_polymer_validation/monomers/extended_neopentane.pdb b/star_polymer_validation/monomers/extended_neopentane.pdb new file mode 100644 index 0000000..05433cf --- /dev/null +++ b/star_polymer_validation/monomers/extended_neopentane.pdb @@ -0,0 +1,31 @@ +HEADER UNCLASSIFIED 06-Feb-25 +TITLE UNITED ATOM STRUCTURE FOR MOLECULE UNL +AUTHOR AUTOMATED TOPOLOGY BUILDER (ATB) REVISION 2025-01-17 09:57:26 +AUTHOR 2 https://atb.uq.edu.au +HETATM 1 H12 8WDY 0 2.912 0.653 -0.831 1.00 0.00 H +HETATM 2 O4 8WDY 0 2.798 0.275 0.055 1.00 0.00 O +HETATM 3 C5 8WDY 0 1.827 -0.768 -0.022 1.00 0.00 C +HETATM 4 C2 8WDY 0 0.362 -0.271 -0.012 1.00 0.00 C +HETATM 5 C1 8WDY 0 0.107 0.604 -1.261 1.00 0.00 C +HETATM 6 O1 8WDY 0 -1.258 1.038 -1.383 1.00 0.00 O +HETATM 7 H1 8WDY 0 -1.455 1.479 -0.529 1.00 0.00 H +HETATM 8 C3 8WDY 0 0.124 0.541 1.281 1.00 0.00 C +HETATM 9 O2 8WDY 0 -1.194 1.109 1.365 1.00 0.00 O +HETATM 10 H6 8WDY 0 -1.803 0.347 1.271 1.00 0.00 H +HETATM 11 C4 8WDY 0 -0.547 -1.521 -0.037 1.00 0.00 C +HETATM 12 O3 8WDY 0 -1.947 -1.211 0.057 1.00 0.00 O +HETATM 13 H9 8WDY 0 -2.117 -0.590 -0.682 1.00 0.00 H +CONECT 1 2 +CONECT 2 1 3 +CONECT 3 2 4 +CONECT 4 3 5 8 11 +CONECT 5 4 6 +CONECT 6 5 7 +CONECT 7 6 +CONECT 8 4 9 +CONECT 9 8 10 +CONECT 10 9 +CONECT 11 4 12 +CONECT 12 11 13 +CONECT 13 12 +END diff --git a/star_polymer_validation/polymers/star_polymer.itp b/star_polymer_validation/polymers/star_polymer.itp new file mode 100644 index 0000000..714e798 --- /dev/null +++ b/star_polymer_validation/polymers/star_polymer.itp @@ -0,0 +1,241 @@ +;----------------------------TITLE ----------------------------------------------------------------------------------------- +; four arm star polymer +; +;----------------------------TITLE ----------------------------------------------------------------------------------------- +; Pentaerythritol +; +; This file was generated at 00:34 on 2025-02-06 by +; +; Automatic Topology Builder +; +; REVISION 2025-01-17 09:57:26 +;--------------------------------------------------------------------------------------------------------------------------- +; Authors : Martin Stroet, Bertrand Caron, Alpeshkumar K. Malde, Thomas Lee, Alan E. Mark +; +; Institute : Molecular Dynamics group, +; School of Chemistry and Molecular Biosciences (SCMB), +; The University of Queensland, QLD 4072, Australia +; URL : https://atb.uq.edu.au +; Citations : 1. Malde AK, Zuo L, Breeze M, Stroet M, Poger D, Nair PC, Oostenbrink C, Mark AE. +; An Automated force field Topology Builder (ATB) and repository: version 1.0. +; Journal of Chemical Theory and Computation, 2011, 7, 4026-4037. +; 2. Stroet M, Caron B, Visscher K, Geerke D, Malde AK, Mark AE. +; Automated Topology Builder version 3.0: Prediction of solvation free enthalpies in water and hexane. +; DOI:10.1021/acs.jctc.8b00768 +; +; Disclaimer : +; While every effort has been made to ensure the accuracy and validity of parameters provided below +; the assignment of parameters is being based on an automated procedure combining data provided by a +; given user as well as calculations performed using third party software. They are provided as a guide. +; The authors of the ATB cannot guarantee that the parameters are complete or that the parameters provided +; are appropriate for use in any specific application. Users are advised to treat these parameters with discretion +; and to perform additional validation tests for their specific application if required. Neither the authors +; of the ATB or The University of Queensland except any responsibly for how the parameters may be used. +; +; Release notes and warnings: +; (1) The topology is based on a set of atomic coordinates and other data provided by the user after +; after quantum mechanical optimization of the structure using different levels of theory depending on +; the nature of the molecule. +; (2) In some cases the automatic bond, bond angle and dihedral type assignment is ambiguous. +; In these cases alternative type codes are provided at the end of the line. +; (3) While bonded parameters are taken where possible from the nominated force field non-standard bond, angle and dihedral +; type code may be incorporated in cases where an exact match could not be found. These are marked as "non-standard" +; or "uncertain" in comments. +; (4) In some cases it is not possible to assign an appropriate parameter automatically. "%%" is used as a place holder +; for those fields that could not be determined automatically. The parameters in these fields must be assigned manually +; before the file can be used. +;--------------------------------------------------------------------------------------------------------------------------- +; Input Structure : 8WDY +; Output : UNITED ATOM topology +; Use in conjunction with the corresponding united atom PDB file. +;--------------------------------------------------------------------------------------------------------------------------- +; Citing this topology file +; ATB molid: 39051 +; ATB Topology Hash: 07f0b +;--------------------------------------------------------------------------------------------------------------------------- +; Final Topology Generation was performed using: +; A B3LYP/6-31G* optimized geometry. +; Bonded and van der Waals parameters were taken from the GROMOS 54A7 parameter set. +; Initial charges were estimated using the ESP method of Merz-Kollman. +; Final charges and charge groups were generated by method described in the ATB paper. +; If required, additional bonded parameters were generated from a Hessian matrix calculated at the B3LYP/6-31G* level of theory. +;--------------------------------------------------------------------------------------------------------------------------- +; +; + +[ moleculetype ] +8WDY 3 +[ atoms ] + 1 CH2 1 8WDY C5 1 0.239437 14.0270 + 2 C 1 8WDY C2 2 0.074437 12.0110 + 3 CH2 1 8WDY C1 3 0.239437 14.0270 + 4 CH2 1 8WDY C3 4 0.239437 14.0270 + 5 CH2 1 8WDY C4 5 0.239437 14.0270 + 6 CH2 2 4Y3B C3 6 0.204625 14.0270 + 7 CH2 2 4Y3B C2 7 0.294625 14.0270 + 8 OE 2 4Y3B O1 8 -0.495375 15.9994 + 9 CH2 3 4Y3B C3 9 0.203375 14.0270 + 10 CH2 3 4Y3B C2 10 0.293375 14.0270 + 11 OE 3 4Y3B O1 11 -0.496625 15.9994 + 12 CH2 4 4Y3B C3 12 0.203375 14.0270 + 13 CH2 4 4Y3B C2 13 0.293375 14.0270 + 14 OE 4 4Y3B O1 14 -0.496625 15.9994 + 15 CH2 5 4Y3B C3 15 0.203612 14.0270 + 16 CH2 5 4Y3B C2 16 0.293612 14.0270 + 17 OE 5 4Y3B O1 17 -0.496387 15.9994 + 18 CH2 6 4Y3B C3 18 0.203600 14.0270 + 19 CH2 6 4Y3B C2 19 0.293600 14.0270 + 20 OE 6 4Y3B O1 20 -0.496400 15.9994 + 21 CH2 7 4Y3B C3 21 0.203350 14.0270 + 22 CH2 7 4Y3B C2 22 0.293350 14.0270 + 23 OE 7 4Y3B O1 23 -0.496650 15.9994 + 24 CH2 8 4Y3B C3 24 0.203398 14.0270 + 25 CH2 8 4Y3B C2 25 0.293397 14.0270 + 26 OE 8 4Y3B O1 26 -0.496603 15.9994 + 27 CH2 9 4Y3B C3 27 0.203442 14.0270 + 28 CH2 9 4Y3B C2 28 0.293442 14.0270 + 29 OE 9 4Y3B O1 29 -0.496557 15.9994 + 30 CH2 10 4Y3B C3 30 0.203390 14.0270 + 31 CH2 10 4Y3B C2 31 0.293390 14.0270 + 32 OE 10 4Y3B O1 32 -0.496610 15.9994 + 33 CH2 11 4Y3B C3 33 0.203349 14.0270 + 34 CH2 11 4Y3B C2 34 0.293349 14.0270 + 35 OE 11 4Y3B O1 35 -0.496650 15.9994 + 36 CH2 12 4Y3B C3 36 0.203368 14.0270 + 37 CH2 12 4Y3B C2 37 0.293368 14.0270 + 38 OE 12 4Y3B O1 38 -0.496632 15.9994 + 39 CH2 13 4Y3B C3 39 0.121819 14.0270 + 40 CH2 13 4Y3B C2 40 0.211819 14.0270 + 41 OE 13 4Y3B O1 41 -0.578181 15.9994 + 42 CH3 14 45ZJ C1 42 -0.094521 15.0350 + 43 CH3 15 45ZJ C1 43 -0.263282 15.0350 + 44 CH3 16 45ZJ C1 44 -0.344813 15.0350 + 45 CH3 17 45ZJ C1 45 -0.091681 15.0350 + +[ bonds ] + 1 17 2 0.1430 8.1800e+06 + 1 2 2 0.1540 4.0057e+06 + 2 5 2 0.1540 4.0057e+06 + 2 3 2 0.1540 4.0057e+06 + 2 4 2 0.1540 4.0057e+06 + 3 8 2 0.1430 8.1800e+06 + 4 11 2 0.1430 8.1800e+06 + 5 14 2 0.1430 8.1800e+06 + 6 7 2 0.1530 7.1500e+06 + 6 20 2 0.1430 8.1800e+06 + 7 8 2 0.1430 8.1800e+06 + 9 10 2 0.1530 7.1500e+06 + 9 23 2 0.1430 8.1800e+06 + 10 11 2 0.1430 8.1800e+06 + 12 13 2 0.1530 7.1500e+06 + 12 26 2 0.1430 8.1800e+06 + 13 14 2 0.1430 8.1800e+06 + 15 16 2 0.1530 7.1500e+06 + 15 29 2 0.1430 8.1800e+06 + 16 17 2 0.1430 8.1800e+06 + 18 32 2 0.1430 8.1800e+06 + 18 19 2 0.1530 7.1500e+06 + 19 20 2 0.1430 8.1800e+06 + 21 22 2 0.1530 7.1500e+06 + 21 35 2 0.1430 8.1800e+06 + 22 23 2 0.1430 8.1800e+06 + 24 38 2 0.1430 8.1800e+06 + 24 25 2 0.1530 7.1500e+06 + 25 26 2 0.1430 8.1800e+06 + 27 28 2 0.1530 7.1500e+06 + 27 41 2 0.1430 8.1800e+06 + 28 29 2 0.1430 8.1800e+06 + 30 31 2 0.1530 7.1500e+06 + 30 42 2 0.1430 8.1800e+06 + 31 32 2 0.1430 8.1800e+06 + 33 34 2 0.1530 7.1500e+06 + 33 43 2 0.1430 8.1800e+06 + 34 35 2 0.1430 8.1800e+06 + 36 37 2 0.1530 7.1500e+06 + 36 44 2 0.1430 8.1800e+06 + 37 38 2 0.1430 8.1800e+06 + 39 45 2 0.1430 8.1800e+06 + 39 40 2 0.1530 7.1500e+06 + 40 41 2 0.1430 8.1800e+06 + +[ pairs ] + +[ angles ] + 2 1 17 2 115.0000 6.1000e+02 + 1 17 16 2 109.5000 4.5000e+02 + 1 2 5 2 109.5000 5.2000e+02 + 1 2 4 2 109.5000 5.2000e+02 + 1 2 3 2 109.5000 5.2000e+02 + 4 2 5 2 109.5000 5.2000e+02 + 3 2 5 2 109.5000 5.2000e+02 + 2 5 14 2 115.0000 6.1000e+02 + 2 3 8 2 115.0000 6.1000e+02 + 3 2 4 2 109.5000 5.2000e+02 + 2 4 11 2 115.0000 6.1000e+02 + 3 8 7 2 109.5000 4.5000e+02 + 4 11 10 2 109.5000 4.5000e+02 + 5 14 13 2 109.5000 4.5000e+02 + 7 6 20 2 109.5000 5.2000e+02 + 6 7 8 2 111.0000 5.3000e+02 + 6 20 19 2 109.5000 4.5000e+02 + 9 10 11 2 111.0000 5.3000e+02 + 10 9 23 2 109.5000 5.2000e+02 + 9 23 22 2 109.5000 4.5000e+02 + 12 13 14 2 111.0000 5.3000e+02 + 13 12 26 2 109.5000 5.2000e+02 + 12 26 25 2 109.5000 4.5000e+02 + 15 16 17 2 111.0000 5.3000e+02 + 16 15 29 2 109.5000 5.2000e+02 + 15 29 28 2 109.5000 4.5000e+02 + 18 32 31 2 109.5000 4.5000e+02 + 19 18 32 2 109.5000 5.2000e+02 + 18 19 20 2 111.0000 5.3000e+02 + 21 22 23 2 111.0000 5.3000e+02 + 22 21 35 2 109.5000 5.2000e+02 + 21 35 34 2 109.5000 4.5000e+02 + 24 38 37 2 109.5000 4.5000e+02 + 25 24 38 2 109.5000 5.2000e+02 + 24 25 26 2 111.0000 5.3000e+02 + 28 27 41 2 109.5000 5.2000e+02 + 27 28 29 2 111.0000 5.3000e+02 + 27 41 40 2 109.5000 4.5000e+02 + 30 31 32 2 111.0000 5.3000e+02 + 31 30 42 2 109.5000 5.2000e+02 + 34 33 43 2 109.5000 5.2000e+02 + 33 34 35 2 111.0000 5.3000e+02 + 36 37 38 2 111.0000 5.3000e+02 + 37 36 44 2 109.5000 5.2000e+02 + 40 39 45 2 109.5000 5.2000e+02 + 39 40 41 2 111.0000 5.3000e+02 + +[ dihedrals ] + 17 1 2 3 1 0.0000 5.9200e+00 3 + 15 16 17 1 1 0.0000 1.2600e+00 3 + 3 2 5 14 1 0.0000 5.9200e+00 3 + 4 2 3 8 1 0.0000 5.9200e+00 3 + 3 2 4 11 1 0.0000 5.9200e+00 3 + 6 7 8 3 1 0.0000 1.2600e+00 3 + 9 10 11 4 1 0.0000 1.2600e+00 3 + 12 13 14 5 1 0.0000 1.2600e+00 3 + 20 6 7 8 1 0.0000 5.9200e+00 3 + 18 19 20 6 1 0.0000 1.2600e+00 3 + 23 9 10 11 1 0.0000 5.9200e+00 3 + 21 22 23 9 1 0.0000 1.2600e+00 3 + 26 12 13 14 1 0.0000 5.9200e+00 3 + 24 25 26 12 1 0.0000 1.2600e+00 3 + 29 15 16 17 1 0.0000 5.9200e+00 3 + 27 28 29 15 1 0.0000 1.2600e+00 3 + 30 31 32 18 1 0.0000 1.2600e+00 3 + 32 18 19 20 1 0.0000 5.9200e+00 3 + 35 21 22 23 1 0.0000 5.9200e+00 3 + 33 34 35 21 1 0.0000 1.2600e+00 3 + 36 37 38 24 1 0.0000 1.2600e+00 3 + 38 24 25 26 1 0.0000 5.9200e+00 3 + 41 27 28 29 1 0.0000 5.9200e+00 3 + 39 40 41 27 1 0.0000 1.2600e+00 3 + 42 30 31 32 1 0.0000 5.9200e+00 3 + 43 33 34 35 1 0.0000 5.9200e+00 3 + 44 36 37 38 1 0.0000 5.9200e+00 3 + 45 39 40 41 1 0.0000 5.9200e+00 3 + +[ exclusions ] diff --git a/star_polymer_validation/polymers/star_polymer.json b/star_polymer_validation/polymers/star_polymer.json new file mode 100644 index 0000000..80a39ee --- /dev/null +++ b/star_polymer_validation/polymers/star_polymer.json @@ -0,0 +1 @@ +{"topology": {"atoms": [{"atom_id": 1, "atom_type": "C", "residue_id": 1, "residue_name": "8WDY", "atom_name": "C2", "charge_group_num": 4, "partial_charge": 0.07443749999999999, "mass": 12.011, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 2, "atom_type": "CH2", "residue_id": 2, "residue_name": "4Y3B", "atom_name": "C2", "charge_group_num": 4, "partial_charge": 0.29462499999999997, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 3, "atom_type": "OE", "residue_id": 2, "residue_name": "4Y3B", "atom_name": "O1", "charge_group_num": 5, "partial_charge": -0.495375, "mass": 15.9994, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 4, "atom_type": "CH2", "residue_id": 1, "residue_name": "8WDY", "atom_name": "C1", "charge_group_num": 5, "partial_charge": 0.2394375, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 5, "atom_type": "CH2", "residue_id": 3, "residue_name": "4Y3B", "atom_name": "C2", "charge_group_num": 4, "partial_charge": 0.293375, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 6, "atom_type": "OE", "residue_id": 3, "residue_name": "4Y3B", "atom_name": "O1", "charge_group_num": 5, "partial_charge": -0.496625, "mass": 15.9994, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 7, "atom_type": "CH2", "residue_id": 1, "residue_name": "8WDY", "atom_name": "C3", "charge_group_num": 8, "partial_charge": 0.2394375, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 8, "atom_type": "CH2", "residue_id": 4, "residue_name": "4Y3B", "atom_name": "C2", "charge_group_num": 4, "partial_charge": 0.293375, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 9, "atom_type": "OE", "residue_id": 4, "residue_name": "4Y3B", "atom_name": "O1", "charge_group_num": 5, "partial_charge": -0.496625, "mass": 15.9994, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 10, "atom_type": "CH2", "residue_id": 1, "residue_name": "8WDY", "atom_name": "C4", "charge_group_num": 11, "partial_charge": 0.2394375, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 11, "atom_type": "CH2", "residue_id": 5, "residue_name": "4Y3B", "atom_name": "C2", "charge_group_num": 4, "partial_charge": 0.2936125, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 12, "atom_type": "OE", "residue_id": 5, "residue_name": "4Y3B", "atom_name": "O1", "charge_group_num": 5, "partial_charge": -0.4963875, "mass": 15.9994, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 13, "atom_type": "CH2", "residue_id": 1, "residue_name": "8WDY", "atom_name": "C5", "charge_group_num": 3, "partial_charge": 0.2394375, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 14, "atom_type": "CH2", "residue_id": 6, "residue_name": "4Y3B", "atom_name": "C2", "charge_group_num": 4, "partial_charge": 0.29359999999999997, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 15, "atom_type": "OE", "residue_id": 6, "residue_name": "4Y3B", "atom_name": "O1", "charge_group_num": 5, "partial_charge": -0.4964, "mass": 15.9994, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 16, "atom_type": "CH2", "residue_id": 2, "residue_name": "4Y3B", "atom_name": "C3", "charge_group_num": 3, "partial_charge": 0.20462499999999997, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 17, "atom_type": "CH2", "residue_id": 7, "residue_name": "4Y3B", "atom_name": "C2", "charge_group_num": 4, "partial_charge": 0.29334999999999994, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 18, "atom_type": "OE", "residue_id": 7, "residue_name": "4Y3B", "atom_name": "O1", "charge_group_num": 5, "partial_charge": -0.49665000000000004, "mass": 15.9994, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 19, "atom_type": "CH2", "residue_id": 3, "residue_name": "4Y3B", "atom_name": "C3", "charge_group_num": 3, "partial_charge": 0.20337499999999994, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 20, "atom_type": "CH2", "residue_id": 8, "residue_name": "4Y3B", "atom_name": "C2", "charge_group_num": 4, "partial_charge": 0.2933975, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 21, "atom_type": "OE", "residue_id": 8, "residue_name": "4Y3B", "atom_name": "O1", "charge_group_num": 5, "partial_charge": -0.4966025, "mass": 15.9994, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 22, "atom_type": "CH2", "residue_id": 4, "residue_name": "4Y3B", "atom_name": "C3", "charge_group_num": 3, "partial_charge": 0.20337499999999994, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 23, "atom_type": "CH2", "residue_id": 9, "residue_name": "4Y3B", "atom_name": "C2", "charge_group_num": 4, "partial_charge": 0.2934425, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 24, "atom_type": "OE", "residue_id": 9, "residue_name": "4Y3B", "atom_name": "O1", "charge_group_num": 5, "partial_charge": -0.4965575, "mass": 15.9994, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 25, "atom_type": "CH2", "residue_id": 5, "residue_name": "4Y3B", "atom_name": "C3", "charge_group_num": 3, "partial_charge": 0.20361249999999997, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 26, "atom_type": "CH2", "residue_id": 10, "residue_name": "4Y3B", "atom_name": "C2", "charge_group_num": 4, "partial_charge": 0.29339, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 27, "atom_type": "OE", "residue_id": 10, "residue_name": "4Y3B", "atom_name": "O1", "charge_group_num": 5, "partial_charge": -0.49661, "mass": 15.9994, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 28, "atom_type": "CH2", "residue_id": 6, "residue_name": "4Y3B", "atom_name": "C3", "charge_group_num": 3, "partial_charge": 0.2036, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 29, "atom_type": "CH2", "residue_id": 11, "residue_name": "4Y3B", "atom_name": "C2", "charge_group_num": 4, "partial_charge": 0.2933495, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 30, "atom_type": "OE", "residue_id": 11, "residue_name": "4Y3B", "atom_name": "O1", "charge_group_num": 5, "partial_charge": -0.4966505, "mass": 15.9994, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 31, "atom_type": "CH2", "residue_id": 7, "residue_name": "4Y3B", "atom_name": "C3", "charge_group_num": 3, "partial_charge": 0.20335, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 32, "atom_type": "CH2", "residue_id": 12, "residue_name": "4Y3B", "atom_name": "C2", "charge_group_num": 4, "partial_charge": 0.293368, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 33, "atom_type": "OE", "residue_id": 12, "residue_name": "4Y3B", "atom_name": "O1", "charge_group_num": 5, "partial_charge": -0.49663199999999996, "mass": 15.9994, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 34, "atom_type": "CH2", "residue_id": 8, "residue_name": "4Y3B", "atom_name": "C3", "charge_group_num": 3, "partial_charge": 0.2033975, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 37, "atom_type": "CH2", "residue_id": 13, "residue_name": "4Y3B", "atom_name": "C2", "charge_group_num": 4, "partial_charge": 0.21181850000000002, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 38, "atom_type": "OE", "residue_id": 13, "residue_name": "4Y3B", "atom_name": "O1", "charge_group_num": 5, "partial_charge": -0.5781814999999999, "mass": 15.9994, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 39, "atom_type": "CH2", "residue_id": 9, "residue_name": "4Y3B", "atom_name": "C3", "charge_group_num": 3, "partial_charge": 0.2034425, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 40, "atom_type": "CH2", "residue_id": 10, "residue_name": "4Y3B", "atom_name": "C3", "charge_group_num": 3, "partial_charge": 0.20338999999999996, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 41, "atom_type": "CH3", "residue_id": 14, "residue_name": "45ZJ", "atom_name": "C1", "charge_group_num": 3, "partial_charge": -0.09452050000000006, "mass": 15.035, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 42, "atom_type": "CH2", "residue_id": 11, "residue_name": "4Y3B", "atom_name": "C3", "charge_group_num": 3, "partial_charge": 0.20334949999999996, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 43, "atom_type": "CH3", "residue_id": 15, "residue_name": "45ZJ", "atom_name": "C1", "charge_group_num": 3, "partial_charge": -0.2632825, "mass": 15.035, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 44, "atom_type": "CH2", "residue_id": 12, "residue_name": "4Y3B", "atom_name": "C3", "charge_group_num": 3, "partial_charge": 0.203368, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 45, "atom_type": "CH3", "residue_id": 16, "residue_name": "45ZJ", "atom_name": "C1", "charge_group_num": 3, "partial_charge": -0.34481349999999983, "mass": 15.035, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 36, "atom_type": "CH2", "residue_id": 13, "residue_name": "4Y3B", "atom_name": "C3", "charge_group_num": 3, "partial_charge": 0.12181850000000001, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 47, "atom_type": "CH3", "residue_id": 17, "residue_name": "45ZJ", "atom_name": "C1", "charge_group_num": 3, "partial_charge": -0.09168149999999992, "mass": 15.035, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}], "bonds": [{"atom_a": 1, "atom_b": 10, "bond_type": 2, "bond_length": 0.154, "force_constant": 4005700.0, "order": 1}, {"atom_a": 1, "atom_b": 4, "bond_type": 2, "bond_length": 0.154, "force_constant": 4005700.0, "order": 1}, {"atom_a": 13, "atom_b": 1, "bond_type": 2, "bond_length": 0.154, "force_constant": 4005700.0, "order": 1}, {"atom_a": 1, "atom_b": 7, "bond_type": 2, "bond_length": 0.154, "force_constant": 4005700.0, "order": 1}, {"atom_a": 16, "atom_b": 2, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 2, "atom_b": 3, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 4, "atom_b": 3, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 19, "atom_b": 5, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 5, "atom_b": 6, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 7, "atom_b": 6, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 22, "atom_b": 8, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 8, "atom_b": 9, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 10, "atom_b": 9, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 25, "atom_b": 11, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 11, "atom_b": 12, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 13, "atom_b": 12, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 14, "atom_b": 15, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 28, "atom_b": 14, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 16, "atom_b": 15, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 17, "atom_b": 18, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 31, "atom_b": 17, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 19, "atom_b": 18, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 20, "atom_b": 21, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 34, "atom_b": 20, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 22, "atom_b": 21, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 39, "atom_b": 23, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 23, "atom_b": 24, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 25, "atom_b": 24, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 40, "atom_b": 26, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 26, "atom_b": 27, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 28, "atom_b": 27, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 42, "atom_b": 29, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 29, "atom_b": 30, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 31, "atom_b": 30, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 44, "atom_b": 32, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 32, "atom_b": 33, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 34, "atom_b": 33, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 37, "atom_b": 38, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 36, "atom_b": 37, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 39, "atom_b": 38, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 40, "atom_b": 41, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 42, "atom_b": 43, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 44, "atom_b": 45, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}, {"atom_a": 36, "atom_b": 47, "bond_type": 2, "bond_length": 0.143, "force_constant": 8180000.0, "order": 1}], "angles": [{"atom_a": 7, "atom_b": 1, "atom_c": 10, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 4, "atom_b": 1, "atom_c": 10, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 13, "atom_b": 1, "atom_c": 10, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 1, "atom_b": 10, "atom_c": 9, "angle_type": 2, "angle_value": 115.0, "force_constant": 610.0}, {"atom_a": 1, "atom_b": 4, "atom_c": 3, "angle_type": 2, "angle_value": 115.0, "force_constant": 610.0}, {"atom_a": 4, "atom_b": 1, "atom_c": 7, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 13, "atom_b": 1, "atom_c": 4, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 13, "atom_b": 1, "atom_c": 7, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 1, "atom_b": 13, "atom_c": 12, "angle_type": 2, "angle_value": 115.0, "force_constant": 610.0}, {"atom_a": 1, "atom_b": 7, "atom_c": 6, "angle_type": 2, "angle_value": 115.0, "force_constant": 610.0}, {"atom_a": 2, "atom_b": 16, "atom_c": 15, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 16, "atom_b": 2, "atom_c": 3, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 4, "atom_b": 3, "atom_c": 2, "angle_type": 2, "angle_value": 109.5, "force_constant": 450.0}, {"atom_a": 19, "atom_b": 5, "atom_c": 6, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 5, "atom_b": 19, "atom_c": 18, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 7, "atom_b": 6, "atom_c": 5, "angle_type": 2, "angle_value": 109.5, "force_constant": 450.0}, {"atom_a": 22, "atom_b": 8, "atom_c": 9, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 8, "atom_b": 22, "atom_c": 21, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 10, "atom_b": 9, "atom_c": 8, "angle_type": 2, "angle_value": 109.5, "force_constant": 450.0}, {"atom_a": 25, "atom_b": 11, "atom_c": 12, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 11, "atom_b": 25, "atom_c": 24, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 13, "atom_b": 12, "atom_c": 11, "angle_type": 2, "angle_value": 109.5, "force_constant": 450.0}, {"atom_a": 16, "atom_b": 15, "atom_c": 14, "angle_type": 2, "angle_value": 109.5, "force_constant": 450.0}, {"atom_a": 28, "atom_b": 14, "atom_c": 15, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 14, "atom_b": 28, "atom_c": 27, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 19, "atom_b": 18, "atom_c": 17, "angle_type": 2, "angle_value": 109.5, "force_constant": 450.0}, {"atom_a": 31, "atom_b": 17, "atom_c": 18, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 17, "atom_b": 31, "atom_c": 30, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 22, "atom_b": 21, "atom_c": 20, "angle_type": 2, "angle_value": 109.5, "force_constant": 450.0}, {"atom_a": 34, "atom_b": 20, "atom_c": 21, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 20, "atom_b": 34, "atom_c": 33, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 23, "atom_b": 39, "atom_c": 38, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 39, "atom_b": 23, "atom_c": 24, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 25, "atom_b": 24, "atom_c": 23, "angle_type": 2, "angle_value": 109.5, "force_constant": 450.0}, {"atom_a": 40, "atom_b": 26, "atom_c": 27, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 26, "atom_b": 40, "atom_c": 41, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 28, "atom_b": 27, "atom_c": 26, "angle_type": 2, "angle_value": 109.5, "force_constant": 450.0}, {"atom_a": 29, "atom_b": 42, "atom_c": 43, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 42, "atom_b": 29, "atom_c": 30, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 31, "atom_b": 30, "atom_c": 29, "angle_type": 2, "angle_value": 109.5, "force_constant": 450.0}, {"atom_a": 44, "atom_b": 32, "atom_c": 33, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 32, "atom_b": 44, "atom_c": 45, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}, {"atom_a": 34, "atom_b": 33, "atom_c": 32, "angle_type": 2, "angle_value": 109.5, "force_constant": 450.0}, {"atom_a": 39, "atom_b": 38, "atom_c": 37, "angle_type": 2, "angle_value": 109.5, "force_constant": 450.0}, {"atom_a": 36, "atom_b": 37, "atom_c": 38, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 37, "atom_b": 36, "atom_c": 47, "angle_type": 2, "angle_value": 109.5, "force_constant": 520.0}], "dihedrals": [{"atom_a": 4, "atom_b": 1, "atom_c": 10, "atom_d": 9, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}, {"atom_a": 7, "atom_b": 1, "atom_c": 4, "atom_d": 3, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}, {"atom_a": 4, "atom_b": 1, "atom_c": 7, "atom_d": 6, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}, {"atom_a": 12, "atom_b": 13, "atom_c": 1, "atom_d": 4, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}, {"atom_a": 15, "atom_b": 16, "atom_c": 2, "atom_d": 3, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}, {"atom_a": 16, "atom_b": 2, "atom_c": 3, "atom_d": 4, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 1.26, "multiplicity": 3, "constants": []}, {"atom_a": 19, "atom_b": 5, "atom_c": 6, "atom_d": 7, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 1.26, "multiplicity": 3, "constants": []}, {"atom_a": 18, "atom_b": 19, "atom_c": 5, "atom_d": 6, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}, {"atom_a": 21, "atom_b": 22, "atom_c": 8, "atom_d": 9, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}, {"atom_a": 22, "atom_b": 8, "atom_c": 9, "atom_d": 10, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 1.26, "multiplicity": 3, "constants": []}, {"atom_a": 25, "atom_b": 11, "atom_c": 12, "atom_d": 13, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 1.26, "multiplicity": 3, "constants": []}, {"atom_a": 24, "atom_b": 25, "atom_c": 11, "atom_d": 12, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}, {"atom_a": 28, "atom_b": 14, "atom_c": 15, "atom_d": 16, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 1.26, "multiplicity": 3, "constants": []}, {"atom_a": 27, "atom_b": 28, "atom_c": 14, "atom_d": 15, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}, {"atom_a": 31, "atom_b": 17, "atom_c": 18, "atom_d": 19, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 1.26, "multiplicity": 3, "constants": []}, {"atom_a": 30, "atom_b": 31, "atom_c": 17, "atom_d": 18, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}, {"atom_a": 34, "atom_b": 20, "atom_c": 21, "atom_d": 22, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 1.26, "multiplicity": 3, "constants": []}, {"atom_a": 33, "atom_b": 34, "atom_c": 20, "atom_d": 21, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}, {"atom_a": 38, "atom_b": 39, "atom_c": 23, "atom_d": 24, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}, {"atom_a": 39, "atom_b": 23, "atom_c": 24, "atom_d": 25, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 1.26, "multiplicity": 3, "constants": []}, {"atom_a": 40, "atom_b": 26, "atom_c": 27, "atom_d": 28, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 1.26, "multiplicity": 3, "constants": []}, {"atom_a": 41, "atom_b": 40, "atom_c": 26, "atom_d": 27, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}, {"atom_a": 43, "atom_b": 42, "atom_c": 29, "atom_d": 30, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}, {"atom_a": 42, "atom_b": 29, "atom_c": 30, "atom_d": 31, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 1.26, "multiplicity": 3, "constants": []}, {"atom_a": 45, "atom_b": 44, "atom_c": 32, "atom_d": 33, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}, {"atom_a": 44, "atom_b": 32, "atom_c": 33, "atom_d": 34, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 1.26, "multiplicity": 3, "constants": []}, {"atom_a": 36, "atom_b": 37, "atom_c": 38, "atom_d": 39, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 1.26, "multiplicity": 3, "constants": []}, {"atom_a": 47, "atom_b": 36, "atom_c": 37, "atom_d": 38, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3, "constants": []}], "pairs": [], "exclusions": [], "preamble": [";----------------------------TITLE -----------------------------------------------------------------------------------------", "; Pentaerythritol", ";", "; This file was generated at 00:34 on 2025-02-06 by", ";", "; Automatic Topology Builder", ";", "; REVISION 2025-01-17 09:57:26", ";---------------------------------------------------------------------------------------------------------------------------", "; Authors : Martin Stroet, Bertrand Caron, Alpeshkumar K. Malde, Thomas Lee, Alan E. Mark", ";", "; Institute : Molecular Dynamics group,", "; School of Chemistry and Molecular Biosciences (SCMB),", "; The University of Queensland, QLD 4072, Australia", "; URL : https://atb.uq.edu.au", "; Citations : 1. Malde AK, Zuo L, Breeze M, Stroet M, Poger D, Nair PC, Oostenbrink C, Mark AE.", "; An Automated force field Topology Builder (ATB) and repository: version 1.0.", "; Journal of Chemical Theory and Computation, 2011, 7, 4026-4037.", "; 2. Stroet M, Caron B, Visscher K, Geerke D, Malde AK, Mark AE.", "; Automated Topology Builder version 3.0: Prediction of solvation free enthalpies in water and hexane.", "; DOI:10.1021/acs.jctc.8b00768", ";", "; Disclaimer :", "; While every effort has been made to ensure the accuracy and validity of parameters provided below", "; the assignment of parameters is being based on an automated procedure combining data provided by a", "; given user as well as calculations performed using third party software. They are provided as a guide.", "; The authors of the ATB cannot guarantee that the parameters are complete or that the parameters provided", "; are appropriate for use in any specific application. Users are advised to treat these parameters with discretion", "; and to perform additional validation tests for their specific application if required. Neither the authors", "; of the ATB or The University of Queensland except any responsibly for how the parameters may be used.", ";", "; Release notes and warnings:", "; (1) The topology is based on a set of atomic coordinates and other data provided by the user after", "; after quantum mechanical optimization of the structure using different levels of theory depending on", "; the nature of the molecule.", "; (2) In some cases the automatic bond, bond angle and dihedral type assignment is ambiguous.", "; In these cases alternative type codes are provided at the end of the line.", "; (3) While bonded parameters are taken where possible from the nominated force field non-standard bond, angle and dihedral", "; type code may be incorporated in cases where an exact match could not be found. These are marked as \"non-standard\"", "; or \"uncertain\" in comments.", "; (4) In some cases it is not possible to assign an appropriate parameter automatically. \"%%\" is used as a place holder", "; for those fields that could not be determined automatically. The parameters in these fields must be assigned manually", "; before the file can be used.", ";---------------------------------------------------------------------------------------------------------------------------", "; Input Structure : 8WDY", "; Output : UNITED ATOM topology", ";\tUse in conjunction with the corresponding united atom PDB file.", ";---------------------------------------------------------------------------------------------------------------------------", "; Citing this topology file", "; ATB molid: 39051", "; ATB Topology Hash: 07f0b", ";---------------------------------------------------------------------------------------------------------------------------", "; Final Topology Generation was performed using:", "; A B3LYP/6-31G* optimized geometry.", "; Bonded and van der Waals parameters were taken from the GROMOS 54A7 parameter set.", "; Initial charges were estimated using the ESP method of Merz-Kollman.", "; Final charges and charge groups were generated by method described in the ATB paper.", "; If required, additional bonded parameters were generated from a Hessian matrix calculated at the B3LYP/6-31G* level of theory.", ";---------------------------------------------------------------------------------------------------------------------------", ";", ";"], "moleculetype": {"name": "8WDY", "nrexcl": 3}}, "junctions": []} \ No newline at end of file diff --git a/star_polymer_validation/polymers/star_polymer.pdb b/star_polymer_validation/polymers/star_polymer.pdb new file mode 100644 index 0000000..2ca7d3c --- /dev/null +++ b/star_polymer_validation/polymers/star_polymer.pdb @@ -0,0 +1,93 @@ +TITLE MDANALYSIS FRAME 0: Created by PDBWriter +CRYST1 3.412 4.501 1.970 90.00 90.00 90.00 P 1 1 +HETATM 1 C5 8WDYX 1 1.827 -0.768 -0.022 1.00 0.00 SYST C +HETATM 2 C2 8WDYX 1 0.362 -0.271 -0.012 1.00 0.00 SYST C +HETATM 3 C1 8WDYX 1 0.107 0.604 -1.261 1.00 0.00 SYST C +HETATM 4 C3 8WDYX 1 0.124 0.541 1.281 1.00 0.00 SYST C +HETATM 5 C4 8WDYX 1 -0.547 -1.521 -0.037 1.00 0.00 SYST C +HETATM 6 C3 4Y3BX 2 -2.525 -1.002 -1.878 1.00 0.00 SYST C +HETATM 7 C2 4Y3BX 2 -2.000 0.344 -2.376 1.00 0.00 SYST C +HETATM 8 O1 4Y3BX 2 -1.258 1.038 -1.383 1.00 0.00 SYST O +HETATM 9 C3 4Y3BX 3 -2.714 -0.760 0.910 1.00 0.00 SYST C +HETATM 10 C2 4Y3BX 3 -2.120 0.565 0.434 1.00 0.00 SYST C +HETATM 11 O1 4Y3BX 3 -1.194 1.109 1.365 1.00 0.00 SYST O +HETATM 12 C3 4Y3BX 4 -3.094 -3.303 -0.508 1.00 0.00 SYST C +HETATM 13 C2 4Y3BX 4 -2.752 -1.869 -0.911 1.00 0.00 SYST C +HETATM 14 O1 4Y3BX 4 -1.947 -1.211 0.057 1.00 0.00 SYST O +HETATM 15 C3 4Y3BX 5 1.534 2.262 0.739 1.00 0.00 SYST C +HETATM 16 C2 4Y3BX 5 2.318 1.546 -0.361 1.00 0.00 SYST C +HETATM 17 O1 4Y3BX 5 2.798 0.275 0.055 1.00 0.00 SYST O +HETATM 18 C3 4Y3BX 6 -3.017 -3.982 -2.726 1.00 0.00 SYST C +HETATM 19 C2 4Y3BX 6 -2.748 -2.711 -3.532 1.00 0.00 SYST C +HETATM 20 O1 4Y3BX 6 -3.315 -1.557 -2.929 1.00 0.00 SYST O +HETATM 21 C3 4Y3BX 7 -3.601 -3.607 -0.065 1.00 0.00 SYST C +HETATM 22 C2 4Y3BX 7 -3.310 -2.306 -0.812 1.00 0.00 SYST C +HETATM 23 O1 4Y3BX 7 -3.680 -1.156 -0.063 1.00 0.00 SYST O +HETATM 24 C3 4Y3BX 8 -3.677 -6.255 -1.398 1.00 0.00 SYST C +HETATM 25 C2 4Y3BX 8 -3.457 -4.964 -2.187 1.00 0.00 SYST C +HETATM 26 O1 4Y3BX 8 -3.965 -3.822 -1.511 1.00 0.00 SYST O +HETATM 27 C3 4Y3BX 9 -1.235 3.424 -0.168 1.00 0.00 SYST C +HETATM 28 C2 4Y3BX 9 0.169 3.518 -0.766 1.00 0.00 SYST C +HETATM 29 O1 4Y3BX 9 1.181 3.547 0.230 1.00 0.00 SYST O +HETATM 30 C3 4Y3BX 10 -1.731 -6.682 -1.779 1.00 0.00 SYST C +HETATM 31 C2 4Y3BX 10 -1.343 -5.681 -2.866 1.00 0.00 SYST C +HETATM 32 O1 4Y3BX 10 -2.475 -5.071 -3.471 1.00 0.00 SYST O +HETATM 33 C3 4Y3BX 11 -2.469 -6.474 0.521 1.00 0.00 SYST C +HETATM 34 C2 4Y3BX 11 -2.130 -5.428 -0.541 1.00 0.00 SYST C +HETATM 35 O1 4Y3BX 11 -3.266 -4.678 -0.946 1.00 0.00 SYST O +HETATM 36 C3 4Y3BX 12 -2.649 -9.117 -0.631 1.00 0.00 SYST C +HETATM 37 C2 4Y3BX 12 -2.145 -8.073 -1.627 1.00 0.00 SYST C +HETATM 38 O1 4Y3BX 12 -3.203 -7.326 -2.211 1.00 0.00 SYST O +HETATM 39 C3 4Y3BX 13 -3.059 1.214 -1.446 1.00 0.00 SYST C +HETATM 40 C2 4Y3BX 13 -2.189 2.313 -2.056 1.00 0.00 SYST C +HETATM 41 O1 4Y3BX 13 -2.157 3.486 -1.256 1.00 0.00 SYST O +HETATM 42 C1 45ZJX 14 -0.523 -7.280 -1.312 1.00 0.00 SYST C +HETATM 43 C1 45ZJX 15 -1.273 -7.208 0.780 1.00 0.00 SYST C +HETATM 44 C1 45ZJX 16 -1.509 -9.849 -0.181 1.00 0.00 SYST C +HETATM 45 C1 45ZJX 17 -3.076 0.132 -2.375 1.00 0.00 SYST C +CONECT 1 2 17 +CONECT 2 1 3 4 5 +CONECT 3 2 8 +CONECT 4 2 11 +CONECT 5 2 14 +CONECT 6 7 20 +CONECT 7 6 8 +CONECT 8 3 7 +CONECT 9 10 23 +CONECT 10 9 11 +CONECT 11 4 10 +CONECT 12 13 26 +CONECT 13 12 14 +CONECT 14 5 13 +CONECT 15 16 29 +CONECT 16 15 17 +CONECT 17 1 16 +CONECT 18 19 32 +CONECT 19 18 20 +CONECT 20 6 19 +CONECT 21 22 35 +CONECT 22 21 23 +CONECT 23 9 22 +CONECT 24 25 38 +CONECT 25 24 26 +CONECT 26 12 25 +CONECT 27 28 41 +CONECT 28 27 29 +CONECT 29 15 28 +CONECT 30 31 42 +CONECT 31 30 32 +CONECT 32 18 31 +CONECT 33 34 43 +CONECT 34 33 35 +CONECT 35 21 34 +CONECT 36 37 44 +CONECT 37 36 38 +CONECT 38 24 37 +CONECT 39 40 45 +CONECT 40 39 41 +CONECT 41 27 40 +CONECT 42 30 +CONECT 43 33 +CONECT 44 36 +CONECT 45 39 +END diff --git a/star_polymer_validation/polymers/star_polymer.png b/star_polymer_validation/polymers/star_polymer.png new file mode 100644 index 0000000..e4c3bcd Binary files /dev/null and b/star_polymer_validation/polymers/star_polymer.png differ