generate starting polymer conformations from monomer pdbs
usage:
polyconf.py --name polymername --nconfs 3 --monomers path/to/monomers.csv --count
polyconf.py --name polymername --nconfs 3 --monomers path/to/monomers.csv --frac --length 200
Required input files:
monomers.csv
, and pdb files for each monomer.
monomers.csv
; a csv file containing the columns 'resname', 'path', 'position', and at least one of 'count' and 'frac'
resname : residue four letter name, with the last digit either I for initator monomers, T for terminator monomers, or m for middle (ie all other) monomers
path : path to geometry of the monomer, containing all atoms and bond information
count: how many of this monomer type are contained in the final polymer. Not used for initiator or terminator monomers.
frac: what proportion of the final polymer is made up of this monomer type. Not used for initiator or terminator monomers.
Assumes monomer geometry contains dummy atoms for polymer extension. Each monomer will have backbone atoms CA and C. Each non-initiator monomer will have dummy atoms CMA and CN, which correspond to the previous CA and C atoms.
When a polymer is extended, the CMA and CN atoms of the new monomer are aligned to the CA and C in the previous monomer.
All atoms named either CMA CN CP or CQ are considered dummy atoms and will not be saved in the final geometry. I'll change this to an argument later.
First a linear polymer is generated, with each monomer added to the previous. Then, --nconfs
conformations are generated by rotating around dihedrals in the monomer backbone and sidechains.