Linear chains

Overview

hoobas.LinearChain.LinearChain This is a class for linear chains in the model.
hoobas.LinearChain.GenericPolymer
hoobas.LinearChain.GenericRingPolymer
hoobas.LinearChain.GenericBlockRingPolymer
hoobas.LinearChain.PolymerBySequence
hoobas.LinearChain.DNAChain DNA chain based on works published: C.
hoobas.LinearChain.DNA3SPNChain
hoobas.LinearChain.RandomPolymer General random polymers comprised of arbitrary hoobas.Composite.CompositeObject monomers
hoobas.LinearChain.PolyStyreneSulfonateChain

Details

class hoobas.LinearChain.BeadMonomer(Bead, units=None)[source]
class hoobas.LinearChain.DNA3SPNChain(ss_dna_sequence=None, ds_dna_sequence=None, sticky_sequence=None, flexor=None, mpi_rank=None, mpi_sync_method=None, intermediate_files_dir=None, **kwargs)[source]
swap_ends()[source]

swaps ends of the chain to bind to the three prime end instead of 5 prime :return:

class hoobas.LinearChain.DNAChain(n_ss, n_ds, sticky_end, flexor=None, **kwargs)[source]

DNA chain based on works published: C. Knorowski, S. Burleigh, A. Travesset, “Dynamics and statics of DNA-programmable nanoparticle self-assembly and crystallization”, Phys. Rev. Lett. 106, 2011 T. I. N. G. Li, R. Sknepnek, R. J. MacFarlane, C. A. Mirkin, M. Olvera de la Cruz, “Modeling the crystallization of spherical nucleic acid nanoparticle conjugates with molecular dynamics simulations”, J. Am. Chem. Soc. 135, 2013

sticky_end = None

Bead types: S: ssDNA A: dsDNA B: sticky-end NP: nanoparticle Fl: flanking bead C:

class hoobas.LinearChain.GenericBlockRingPolymer(n_mono=(100, ), kuhn_length=1.0, rigid=None, units=None, randomize_blocks=False)[source]
class hoobas.LinearChain.GenericPolymer(n_mono=100, kuhn_length=1.0, beadname=None, rigid=False, units=None)[source]
class hoobas.LinearChain.GenericRingPolymer(n_mono=100, kuhn_length=1.0, beadname=None, rigid=False, units=None)[source]
class hoobas.LinearChain.LinearChain(n_monomer=None, kuhn_length=None, units=None)[source]

This is a class for linear chains in the model. Subclasses are expected to give constants for angles and other funct ions. initial chain is expected to run along Z, while DNA is added on x-y plane

Properties :

zero_pos : position of the first bead in the chain

center_position : position of the center of the chain, calculated by arithmetic average

bond_types : returns the bond types in the chain in the form [[‘name’, k, r0], … ]

angle_types : returns the angle types in the chain in the form [[‘name’, k, t0], …]

dihedral_types : returns the dihedral types in the form [[‘name’, params0, params1, … ], …], parameter number
depends on the potential type, OPLS has 4

pnum_offset : shifts all bead numbers in potentials by this constant

Methods :

add_dna(#, n_ss, n_ds, sticky_end) : adds DNA defined by the parameters to the linear chain. DNA are grafted to remaining sites

randomize_dirs : randomizes the chain directions

change_remaining_att_sites(key_search, max_num_bindings = 1) : changes the remaining attachment sites in the chain by using a key search in the beads. the key is a dictionary (e.g. {‘beadtype’:’P’}). max_num_bindings is the maximum number of grafts a site can have, including all previous bindings

graft_N_ext_obj(N, obj, connecting_bond = None, add_attachment_sites = False) : grafts N copies (N<remaining sites) of obj to the chain, connecting the newly added chain by connecting_bond[0]. If add_attachment_sites is true, the grafted object attachment sites will be appended to the remaining sites

random_roration(): Rotates the chain by a random matrix

XY_rotate(angle)[source]

rotate around the polymer backbone :param angle: angle to rotate :return:

class hoobas.LinearChain.PolyStyreneSulfonateChain(n_monomers, tacticity_distribution=None)[source]
class hoobas.LinearChain.Polyaniline(n_monomer=None)[source]
class hoobas.LinearChain.PolymerBySequence(sequence, units=None)[source]
class hoobas.LinearChain.PolystyreneSulfonateMonomer(tact)[source]
class hoobas.LinearChain.RandomPolymer(n_mono, monomers=None, distribution=None, units=None)[source]

General random polymers comprised of arbitrary hoobas.Composite.CompositeObject monomers

Args:

n_mono: Number of monomers to assemble. This parameter can be an integer or function. The function should not take any arguments

monomers (dict): list of monomers that will be used for building the chain. If any of the monomers are beads, they will be converted to BeadMonomer objects

distribution (function): function that determines the next monomer to be added. Extra and superseding behavior

-None: Entirely random distribution

-foo(**kwargs): queries kwargs from self and passes them in foo

-foo() returns a CompositeObject: use the composite object as the next monomer

-foo() returns None: terminate building for this chain