Specifications Package

This package contains specification classes, which are protein parametrisations and can used to create parametric models of a protein fold.

Submodules

isambard.specifications.coiledcoil module

Contains code for modelling coiled coils and collagens.

class isambard.specifications.coiledcoil.CoiledCoil(n, auto_build=True)[source]

Bases: ampal.assembly.Assembly

Models a coiled-coil protein.

Notes

Instantiating this class using just an oligomeric state is used to create simple reference models. To build more complex models use the from_parameters classmethod.

Parameters:
  • n (int) – The oligomeric state of the model to be built.
  • auto_build (bool, optional) – If True, the model will be built as part of instantiation.
aas

[int] – Number of amino acids in each minor helix.

basis_set_sequences

[str] – Reference sequences for the oligomeric state that has been selected, taken from the basis set of coiled coils.

major_radii

[float] – Radii of the minor helices relative to the super-helical axis.

major_pitches

[float] – Pitch values of the minor helices relative to the super-helical axis.

phi_c_alphas

Relative rotation values of the minor helices relative to the super-helical axis.

minor_helix_types

[str] – Helix types of the minor helices. Can be: ‘alpha’, ‘pi’, ‘3-10’, ‘PPI’, ‘PP2’, ‘collagen’.

major_handedness

str – Handedness of the super helix.

orientations

Orientation of helices relative to the super-helical axis. 1 is parallel, -1 is anti-parallel.

minor_repeats

[float] – Hydrophobic repeats of the minor helices.

rotational_offsets

Rotation of the minor helices relative to the super-helical axis.

z_shifts

[float] – Translation of the minor helices along the super-helical axis.

oligomeric_state

int – Oligomeric state of the coiled coil.

build()[source]

Builds a model of a coiled coil protein using input parameters.

classmethod from_parameters(n, aa=28, major_radius=None, major_pitch=None, phi_c_alpha=26.42, minor_helix_type='alpha', auto_build=True)[source]

Creates a CoiledCoil from defined super-helical parameters.

Parameters:
  • n (int) – Oligomeric state
  • aa (int, optional) – Number of amino acids per minor helix.
  • major_radius (float, optional) – Radius of super helix.
  • major_pitch (float, optional) – Pitch of super helix.
  • phi_c_alpha (float, optional) – Rotation of minor helices relative to the super-helical axis.
  • minor_helix_type (float, optional) – Helix type of minor helices. Can be: ‘alpha’, ‘pi’, ‘3-10’, ‘PPI’, ‘PP2’, ‘collagen’.
  • auto_build (bool, optional) – If True, the model will be built as part of instantiation.
classmethod from_polymers(polymers)[source]

Creates a CoiledCoil from a list of HelicalHelices.

Parameters:polymers ([HelicalHelix]) – List of HelicalHelices.
classmethod tropocollagen(aa=28, major_radius=5.0, major_pitch=85.0, auto_build=True)[source]

Creates a model of a collagen triple helix.

Parameters:
  • aa (int, optional) – Number of amino acids per minor helix.
  • major_radius (float, optional) – Radius of super helix.
  • major_pitch (float, optional) – Pitch of super helix.
  • auto_build (bool, optional) – If True, the model will be built as part of instantiation.

isambard.specifications.helix module

Contains classes and functions for modelling helical structure.

class isambard.specifications.helix.HelicalHelix(aa=10, major_pitch=225.8, major_radius=5.07, major_handedness='l', minor_helix_type='alpha', orientation=1, phi_c_alpha=0.0, minor_repeat=None)[source]

Bases: ampal.protein.Polypeptide

Builds a Helix along a curve defined by a super helix.

Parameters:
  • aa (int) – Number of amino acids in the Helix. If `None, an appropriate number of residues are added.
  • major_pitch (float, optional) – Pitch of the super helix.
  • major_radius (float, optional) – Radius of the super helix.
  • major_handedness (str, optional) – Handedness of the super helix.
  • minor_helix_type (str, optional) – Type of minor helix, can be: ‘alpha’, ‘pi’, ‘3-10’, ‘PPI’, ‘PPII’, ‘collagen’.
  • orientation (int, optional) – Parallel (1) or anti-parallel (-1).
  • phi_c_alpha (float, optional) – Rotation of the minor helix relative to the super- helical axis.
  • minor_repeat (float, optional) – Hydrophobic repeat of the Helix.
num_monomers

int – Number of amino acids in the Helix. If `None, an

major_pitch

float, optional – Pitch of the super helix.

major_radius

float, optional – Radius of the super helix.

major_handedness

str, optional – Handedness of the super helix.

minor_helix_type

str, optional – Type of minor helix, can be: ‘alpha’, ‘pi’, ‘3-10’, ‘PPI’, ‘PPII’, ‘collagen’.

orientation

int, optional – Parallel (1) or anti-parallel (-1).

phi_c_alpha

float, optional – Rotation of the minor helix relative to the super- helical axis.

minor_repeat

float, optional – Hydrophobic repeat of the Helix, appropriate number of residues are added.

minor_rise_per_residue

float – Distance that each residue travels along the z-axis.

minor_handedness

str – The handedness of the helix can be ‘r’ or ‘l’.

helix_start

3D Vector (tuple or list or numpy.array) – The coordinate of the start of the helix primitive.

helix_end

3D Vector (tuple or list or numpy.array) – The coordinate of the end of the helix primitive.

build()[source]

Builds the HelicalHelix.

curve

Curve of the super helix.

curve_primitive

Primitive of the super-helical curve.

classmethod from_start_and_end(start, end, aa=None, major_pitch=225.8, major_radius=5.07, major_handedness='l', minor_helix_type='alpha', orientation=1, phi_c_alpha=0.0, minor_repeat=None)[source]

Creates a HelicalHelix between a start and end point.

get_orient_angle(reference_point=array([0, 0, 0]), monomer_index=0, res_label='CA', radians=False)[source]

Angle between reference_point and self[monomer_index][res_label].

Notes

Angle is calculated using the dihedral angle, with the second and third points coming from the curve_primitive.

Parameters:
  • reference_point (list, tuple or numpy.array of length 3.) –
  • monomer_index (int) – Index of the Residue to centre.
  • res_label (str) – Atom name for centred atom, e.g. “CA” or “OE1”.
  • radians (bool) – If True, then desired_angle is in radians instead of degrees.
helix_length

Length of major axis (i.e. height of cylinder around which helicalhelix curves).

major_axis

Axis of the super helix.

major_rise_per_monomer

Rise along super-helical axis per monomer.

minor_residues_per_turn(minor_repeat=None)[source]

Calculates the number of residues per turn of the minor helix.

Parameters:minor_repeat (float, optional) – Hydrophobic repeat of the minor helix.
Returns:minor_rpt – Residues per turn of the minor helix.
Return type:float
move_to(start, end)[source]

Moves the HelicalHelix to lie on the vector start and end.

Parameters:
  • start (3D Vector (tuple or list or numpy.array)) – The coordinate of the start of the helix primitive.
  • end (3D Vector (tuple or list or numpy.array)) – The coordinate of the end of the helix primitive.
Raises:

ValueError – Raised if start and end are very close together.

rotate(angle, axis, point=None, radians=False)[source]

Rotates every atom in the AMPAL object.

Parameters:
  • angle (float) – Angle that AMPAL object will be rotated.
  • axis (3D Vector (tuple, list, numpy.array)) – Axis about which the AMPAL object will be rotated.
  • point (3D Vector (tuple, list, numpy.array), optional) – Point that the axis lies upon. If None then the origin is used.
  • radians (bool, optional) – True is angle is define in radians, False is degrees.
  • inc_alt_states (bool, optional) – If true, will rotate atoms in all states i.e. includes alternate conformations for sidechains.
rotate_monomers(angle, radians=False)[source]

Rotates each Residue in the Polypeptide.

Notes

Each monomer is rotated about the axis formed between its corresponding primitive PseudoAtom and that of the subsequent Monomer.

Parameters:
  • angle (float) – Angle by which to rotate each monomer.
  • radians (bool) – Indicates whether angle is in radians or degrees.
translate(vector)[source]

Translates every atom in the AMPAL object.

Parameters:
  • vector (3D Vector (tuple, list, numpy.array)) – Vector used for translation.
  • inc_alt_states (bool, optional) – If true, will rotate atoms in all states i.e. includes alternate conformations for sidechains.
class isambard.specifications.helix.Helix(aa=10, helix_type='alpha')[source]

Bases: ampal.protein.Polypeptide

Creates a model of a Polypeptide with helical structure.

Parameters:
  • aa (int, optional) – Number of amino acids in the Helix.
  • helix_type (str, optional) – Type of helix, can be: ‘alpha’, ‘pi’, ‘3-10’, ‘PPI’, ‘PPII’, ‘collagen’.
num_monomers

int – Number of amino acids in the Helix.

helix_type

str – Type of helix, can be: ‘alpha’, ‘pi’, ‘3-10’, ‘PPI’, ‘PPII’, ‘collagen’.

residues_per_turn

float – Number of residues per turn of the helix.

rise_per_residue

float – Distance that each residue travels along the z-axis.

handedness

str – The handedness of the helix can be ‘r’ or ‘l’.

helix_start

3D Vector (tuple or list or numpy.array) – The coordinate of the start of the helix primitive.

helix_end

3D Vector (tuple or list or numpy.array) – The coordinate of the end of the helix primitive.

ax_unit

The unit tangent of the axis.

axis

The Axis around which the helix is constructed.

build()[source]

Build straight helix along z-axis, starting with CA1 on x-axis

classmethod from_start_and_end(start, end, aa=None, helix_type='alpha')[source]

Creates a Helix between start and end.

Parameters:
  • start (3D Vector (tuple or list or numpy.array)) – The coordinate of the start of the helix primitive.
  • end (3D Vector (tuple or list or numpy.array)) – The coordinate of the end of the helix primitive.
  • aa (int, optional) – Number of amino acids in the Helix. If `None, an appropriate number of residues are added.
  • helix_type (str, optional) – Type of helix, can be: ‘alpha’, ‘pi’, ‘3-10’, ‘PPI’, ‘PPII’, ‘collagen’.
helix_length

The length of the Helix.

move_to(start, end)[source]

Moves the Helix to lie on the vector between start and end.

Parameters:
  • start (3D Vector (tuple or list or numpy.array)) – The coordinate of the start of the helix primitive.
  • end (3D Vector (tuple or list or numpy.array)) – The coordinate of the end of the helix primitive.
Raises:

ValueError – Raised if start and end are very close together.

rad_unit

The unit normal of the axis.

rotate(angle, axis, point=None, radians=False)[source]

Rotates every atom in the AMPAL object.

Parameters:
  • angle (float) – Angle that AMPAL object will be rotated.
  • axis (3D Vector (tuple, list, numpy.array)) – Axis about which the AMPAL object will be rotated.
  • point (3D Vector (tuple, list, numpy.array), optional) – Point that the axis lies upon. If None then the origin is used.
  • radians (bool, optional) – True is angle is define in radians, False is degrees.
  • inc_alt_states (bool, optional) – If true, will rotate atoms in all states i.e. includes alternate conformations for sidechains.
tan_unit

The unit binormal of the axis.

translate(vector)[source]

Translates every atom in the AMPAL object.

Parameters:
  • vector (3D Vector (tuple, list, numpy.array)) – Vector used for translation.
  • inc_alt_states (bool, optional) – If true, will rotate atoms in all states i.e. includes alternate conformations for sidechains.

isambard.specifications.nucleic_acid_duplex module

Contains code for generating nucleic acid duplexes.

class isambard.specifications.nucleic_acid_duplex.DNADuplex(strand)[source]

Bases: ampal.assembly.Assembly

Creates a DNA duplex from a single strand of helical DNA.

Parameters:strand (NucleicAcidStrand) – DNA single strand helix.
classmethod from_sequence(sequence, phos_3_prime=False)[source]

Creates a DNA duplex from a nucleotide sequence.

Parameters:
  • sequence (str) – Nucleotide sequence.
  • phos_3_prime (bool, optional) – If false the 5’ and the 3’ phosphor will be omitted.
classmethod from_start_and_end(start, end, sequence, phos_3_prime=False)[source]

Creates a DNA duplex from a start and end point.

Parameters:
  • start ([float, float, float]) – Start of the build axis.
  • end ([float, float, float]) – End of build axis.
  • sequence (str) – Nucleotide sequence.
  • phos_3_prime (bool, optional) – If false the 5’ and the 3’ phosphor will be omitted.
static generate_complementary_strand()[source]

Takes a SingleStrandHelix and creates the antisense strand.

isambard.specifications.nucleic_acid_duplex.generate_antisense_sequence(sequence)[source]

Creates the antisense sequence of a DNA strand.

isambard.specifications.nucleic_acid_strand module

Contains code for generating single polynucleotides.

class isambard.specifications.nucleic_acid_strand.NucleicAcidStrand(sequence='GATC', helix_type='b_dna', phos_3_prime=False)[source]

Bases: ampal.nucleic_acid.Polynucleotide

Generates a Polynucleotide from a sequence of bases.

Parameters:
  • sequence (str) – The nucleotide sequence of the nucleic acid.
  • helix_type (str, optional) – The type of nucleic acid helix to generate.
  • phos_3_prime (bool, optional) – If false the 5’ and the 3’ phosphor will be omitted.
base_sequence

str – Nucleotide sequence for the nucleic acid.

num_monomers

int – Number of bases in the sequence.

helix_type

str – The type of nucleic acid helix. Currently only b-DNA is implemented.

phos_3_prime

bool – If true, the 3’ end of the strand will have a phosphate.

nucleotides_per_turn

float – Number of nucleotides per turn of the nucleic acid super helix.

rise_per_nucleotide

float – Rise along the nucleic acid super helix per base.

handedness

str – Handedness of the super helix.

helix_start

3D Vector (tuple or list or numpy.array) – Initial coordinate of the backbone primitive.

helix_end

3D Vector (tuple or list or numpy.array) – Last coordinate of the backbone primitive.

Raises:ValueError – Raised if a sequence is not provided.
ax_unit

The unit tangent of the super-helical axis.

axis

The super-helical axis.

build()[source]

Build single DNA strand along z-axis, starting with P on x-axis

classmethod from_start_and_end(start, end, sequence, helix_type='b_dna', phos_3_prime=False)[source]

Generates a helical Polynucleotide that is built along an axis.

Parameters:
  • start ([float, float, float]) – Start of the build axis.
  • end ([float, float, float]) – End of build axis.
  • sequence (str) – The nucleotide sequence of the nucleic acid.
  • helix_type (str) – The type of nucleic acid helix to generate.
  • phos_3_prime (bool) – If false the 5’ and the 3’ phosphor will be omitted.
helix_length

Length of the helix in Ångstroms.

move_to(start, end)[source]

Moves the Polynucleotide to lie on the start and end vector.

Parameters:
  • start (3D Vector (tuple or list or numpy.array)) – The coordinate of the start of the helix primitive.
  • end (3D Vector (tuple or list or numpy.array)) – The coordinate of the end of the helix primitive.
Raises:

ValueError – Raised if start and end are very close together.

rad_unit

The unit normal of the super-helical axis.

rotate(angle, axis, point=None, radians=False)[source]

Rotates every atom in the AMPAL object.

Parameters:
  • angle (float) – Angle that AMPAL object will be rotated.
  • axis (3D Vector (tuple, list, numpy.array)) – Axis about which the AMPAL object will be rotated.
  • point (3D Vector (tuple, list, numpy.array), optional) – Point that the axis lies upon. If None then the origin is used.
  • radians (bool, optional) – True is angle is define in radians, False is degrees.
  • inc_alt_states (bool, optional) – If true, will rotate atoms in all states i.e. includes alternate conformations for sidechains.
tan_unit

The unit binormal of the super-helical axis.

translate(vector)[source]

Translates every atom in the AMPAL object.

Parameters:
  • vector (3D Vector (tuple, list, numpy.array)) – Vector used for translation.
  • inc_alt_states (bool, optional) – If true, will rotate atoms in all states i.e. includes alternate conformations for sidechains.

isambard.specifications.solenoid module

Contains classes for modeling alpha-solenoid proteins.

class isambard.specifications.solenoid.HelixPair(aas=(10, 10), axis_distances=(-4.5, 4.5), z_shifts=(0, 0), phis=(0, 0), splays=(0, 0), off_plane=(0, 0), build=True)[source]

Bases: ampal.assembly.Assembly

Generates a pair of helixes oriented relative to a central axis.

Parameters:
  • aas ((int, int), optional) – Number of residues per helix.
  • axis_distances ((float, float), optional) – Distance from central axis (Å).
  • z_shifts ((float, float), optional) – Z-shift of the helices relative to the central axis.
  • phis ((float, float), optional) – Rotation of the component helices around their local helical axis.
  • splays ((float, float), optional) – The tiltedness of the helices in the plane relative to each other.
  • off_plane ((float, float), optional) – The tiltedness of the helices out of plane relative to each other.
  • build (bool) – Automatically build.
aas

(int, int) – Number of residues per helix.

axis_distances

(float, float) – Distance from central axis (Å).

z_shifts

(float, float) – Z-shift of the helices relative to the central axis.

phis

(float, float) – Rotation of the component helices around their local helical axis.

splays

(float, float) – The tiltedness of the helices in the plane relative to each other.

off_plane

(float, float) – The tiltedness of the helices out of plane relative to each other.

build()[source]

Builds a HelixPair using the defined attributes.

static make_helix(axis_distance, z_shift, phi, splay, off_plane)[source]

Builds a helix for a given set of parameters.

class isambard.specifications.solenoid.Solenoid(repeat_unit, num_of_repeats, radius, rise, rot_ang, handedness)[source]

Bases: ampal.assembly.Assembly

Generates a Solenoid from a repeating unit.

Parameters:
  • repeat_unit (Ampal Object) – Any AMPAL object.
  • num_of_repeats (int) – Number of copies of the repeating unit.
  • radius – Radius of super-helix.
  • rise – Rise of super-helix
  • rot_ang – Delta angle of each repeating unit.
  • handedness – Handedness of the super-helix.
repeat_unit

Ampal Object – Any AMPAL object.

num_of_repeats

int – Number of copies of the repeating unit.

radius

Radius of super-helix.

rise

Rise of super-helix

rot_ang

Delta angle of each repeating unit.

handedness

Handedness of the super-helix.

build()[source]

Builds a Solenoid using the defined attributes.

isambard.specifications.ta_polypeptide module

Contains functionality for builting protein structure from torsion angles.

class isambard.specifications.ta_polypeptide.TAPolypeptide

Bases: ampal.protein.Polypeptide

Generates a polypeptide with defined torsion angles.

Note

Default bond angles and distances from [1]. The final oxygen atom is positioned as if the next (imaginary) Residue is bonded in a trans conformation (i.e. using a default value for the CA-C=O angle of 121.0, not 119.0).

References

[0]Schulz, G. E, and R. Heiner Schirmer. Principles Of Protein Structure. New York: Springer-Verlag, 1979.
Parameters:
  • torsion_angles (list of triples) – Contains lists of torsion angles (omega, phi, psi) that will be used to create the polypeptide. The number of residues is equal to the length of this list. The first value of the first list (omega) and the last value of the last list (psi) will not be used to generate the polypeptide.
  • auto_build (bool) – If true, the model will be built as part of instantiation.
torsion_angles

list of triples – Contains lists of torsion angles (omega, phi, psi) that will be used to create the polypeptide. The number of residues is equal to the length of this list. The first value of the first list (omega) and the last value of the last list (psi) will not be used to generate the polypeptide.

n_ca_bonds

list of float – Backbone N-CA bond distances in Angstroms.

ca_c_bonds

list of float – Backbone CA-C bond distances in Angstroms.

c_n_bonds

list of float – Backbone C-N (peptide) bond distances in Angstroms.

c_o_bonds

list of float – Backbone C=O bond distances in Angstroms.

n_ca_c_angles

list of float – Backbone N-CA-C bond angle in degrees.

ca_c_o_angles

list of float – Backbone CA-C=O bond angle in degrees.

ca_c_n_angles

list of float – Backbone CA-C-N bond angle in degrees.

c_n_ca_angles

list of float – Backbone C-N-CA bond angle in degrees.

build

Builds TAPolypeptide using its bond angle and bond length lists.

classmethod from_polypeptide(polypeptide, align_model=True, auto_build=True)

Builds input polypeptide as a TAPolypeptide

Parameters:
  • polypeptide (Polypeptide) –
  • align_model (bool) – If True, runs align() on the TAPolypeptide to align it with the Polypeptide before returning.
  • auto_build (bool) – If true, the model will be built as part of instantiation.
Raises:

TypeError – Raised if polypeptide is not ampal.Polypeptide.

o_c_n_angles

Backbone O=C-N angle determined by CA-C=O and CA-C-N angle.

Notes

Must sum to 360.0.

isambard.specifications.ta_polypeptide.planar_residue(n_ca=1.47, ca_c=1.53, c_o=1.24, n_ca_c=110.0, ca_c_o=121.0)

GLY Residue with all coordinates in the y-z plane.

Note

Builds a GLY Residue in the y-z plane. N is placed at the origin, and CA on the positive z-axis. The C and O coordinates are determined by input bond length and angles.

Parameters:
  • n_ca (float, optional) – N-CA bond distance in Angstroms.
  • ca_c (float, optional) – CA-C bond distance in Angstroms.
  • c_o (float, optional) – C=O bond distances in Angstroms.
  • n_ca_c (float, optional) – N-CA-C bond angle in degrees.
  • ca_c_o (float, optional) – CA-C=O bond angle in degrees.
Returns:

A GLY Residue in the y-z plane.

Return type:

Residue