Submodules

codes

AUTOMACS BILAYERS

Codes for making protein-membrane systems using automacs.

codes.adhere_protein_bilayer

codes.adhere_protein_bilayer.adhere_protein_bilayer(gro, debug=False, **kwargs)

MOVING FROM bilayer.py !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! adhere_protein_cgmd_bilayer(bilayer,combo,protein_complex=None) Attach proteins to a CGMD (?) bilayer. HEAVILY MODIFIED FROM ORIGINAL AUTOMACS. Removed debugging, pocket lipids, etc.

codes.adhere_protein_bilayer.detect_ions(structure)
codes.adhere_protein_bilayer.detect_ions0000(structure)

Referesh state.cation and state.anion for other functions e.g. bilayer_sorter. Insists on only one cation and one anion.

codes.adhere_protein_bilayer.detect_lipids(structure)
codes.adhere_protein_bilayer.detect_lipids00000(structure)

Referesh state.lipids for other functions e.g. bilayer_sorter.

codes.adhere_protein_bilayer.lay_coords_flat(points, direction=’y’)

Rotate a protein so its first principal axis is aligned with one of the cartesian directions.

codes.adhere_protein_bilayer.make_list(x)
codes.adhere_protein_bilayer.place_protein()

Choose one of the protein placement options partitioned into functions below.

codes.adhere_protein_bilayer.place_protein_banana()

Protein flat-laying banana procedure. In the banana procedure we start with a protein with an obvious first principal axis (i.e. an elogated rod of some kind). We align the first principal axis with a cartesian direction. Then we select an “up” group and a “down” group. The vector between groups (hereafter: axis) is projected onto the plane normal to the direction vector (now the first principal axis of the protein). This projected axis is used to describe a rotation. The final rotation forces two constraints on the protein: its longest axis is aligned in a particular direction, and the vector between up and down groups is parallel to the negative z-vector. This is equivalent to enforcing an orthogonal basis for the protein, where the second vector is a projection of the up/down axis.

codes.adhere_protein_bilayer.place_protein_globular_up_down()

Fix the name please!

codes.adhere_protein_bilayer.recenter_protein_bilayer(structure, gro)

Run this after any grompp step to put everything back in the box. ! repetitive with center_bilayer in bilayer.py used on the standard method ! depends on state.lipids being already identified …

codes.adhere_protein_bilayer.remove_ions(structure, gro)

HACKISH WAY TO RE-NEUTRALIZE. BETTER OPTION MIGHT JUST BE TO RESOLVATE ENTIRELY ??? #—! handle “reionize method” option ^^^

codes.bilayer

Bilayer construction routines.

codes.bilayer.bilayer_flatten_for_restraints(structure, gro)

Read a bilayer and replace its coordinates with perfectly flat ones.

codes.bilayer.bilayer_middle(structure, gro)

Move the bilayer to the middle of the z-coordinate of the box. Note that the protein adhesion procedure works best on a slab that is centered on z=0. This means that the bilayer will be broken across z=0. For visualization it is better to center it.

codes.bilayer.bilayer_sorter(structure, ndx=’system-groups’, protein=False)

Divide the system into groups.

codes.bilayer.build_bilayer(name, random_rotation=True)

Create a new bilayer according to a particular topography. Historical note: comes from amx/procedures/bilayer.py

codes.bilayer.counterion_renamer(structure)

Fix the ion names for MARTINI.

codes.bilayer.distinguish_leaflets(structure=’incoming’, gro=’outgoing’, samename=False, indices=’dat-monolayer-indices.py’)

Take a gro file and some knowledge about leaflets and distinguish them.

codes.bilayer.lipid_upright()

Assuming that incoming ITP files do not have position restraints, we add them here. These position restraints ensure an upright lipid in a vacuum-packed bilayer.

codes.bilayer.makeshape()

Generate the midplane points for various bilayer shapes. Historical note: comes from amx/procedures/bilayer.py

codes.bilayer.random_lipids(total, composition, binsize)

Generate a random 2D grid of lipids in an arrangement according to the aspect ratio. Note that this is currently designed for flat bilayers so the binsize spacing is on the XY plane.

codes.bilayer.release_restraints()

Custom method for removing restraints.

codes.bilayer.remove_jump(structure, tpr, gro, pbc=’nojump’)

Correct that thing where the bilayer crosses the PBCs and gets split.

codes.bilayer.solvate_bilayer(structure=’vacuum’)

Solvate a CGMD bilayer (possibly with proteins) avoiding overlaps.

codes.bilayer.vacuum_pack(structure=’vacuum’, name=’vacuum-pack’, gro=’vacuum-packed’, pbc=’nojump’)

Pack the lipids in the plane, gently.

codes.bilayer.vacuum_pack_loop(structure, gro, tpr)

Run multiple vacuum packing loops.

codes.bilayer_bookkeeping

Bilayer bookkeeping routines.

codes.bilayer_bookkeeping.read_bilayer(structure)

Read key features from a bilayer in order to use it as a starting substrate for a simulation.