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.
-
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.
-
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.
-
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.
-
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.
-
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.
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.
-
classmethod
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.
-
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.
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.
-
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.
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