Reference navigation
On this page
Protein
A molecular structure with fixed atom identities, coordinates, and display settings.
from proteinmotion import ProteinConstructor
Protein(topology, xyz, *, trajectory=None)Parameters
| Parameter | Default | Description |
|---|---|---|
topology | Required | Atom identities, residues, bonds, and chains in a Topology object. |
xyz | Required | Finite coordinates with shape (atoms, 3), in ångströms. |
trajectorykeyword only | None | Trajectory with the same atom identities and order; None uses the protein’s trajectory. |
Notes
Use from_file() for PDB/mmCIF or from_trajectory() for coordinate ensembles. Distances and radii use ångströms; rotation angles use radians. Immediate setters return the protein for chaining.
Attributes
| Name | Description |
|---|---|
topology | Atoms, residues, covalent bonds, and chain segments. |
trajectory | Coordinate states associated with this protein. |
position | World translation as a 3-vector. |
orientation | 3 × 3 rotation matrix. |
size | Positive uniform scale factor. |
opacity | Global opacity in [0, 1]. |
trajectory_frame | Current fractional trajectory state, updated by PlayTrajectory and restored by seeking. |
Example and output
This excerpt runs inside a scene’s construct() method. The full example file includes imports, structure loading, and camera setup. Run it from a repository checkout.
p = ubiquitin().surface(resolution=0.7).cartoon()
frame(self, p)
self.wait(1)
for name in ("ribbon", "ball_and_stick", "surface"):
self.play(Representation(p, name), run_time=1.2)
self.play(Rotate(p, 0.45), run_time=1.5)Cartoon, ribbon, ball-and-stick, and SES surface.
Methods and properties
| Name | Description |
|---|---|
| select()method | Select atoms by author chain, residue number, and atom name. |
| build()class method | Build an ideal peptide with every heavy atom from one-letter codes and torsion angles. |
| secondary_structureproperty | Current H/E/C state of each residue, as the cartoon draws it. |
| set_secondary_structure()method | Set one H/E/C state per residue for drawing; can change between animations. |
| assign_secondary_structure()method | Assign helix, strand and coil with DSSP from the current coordinates. |
| torsions()method | Measure φ, ψ, ω and χ1–χ5 in degrees for all residues, or a selection. |
| set_torsions()method | Set torsions in degrees immediately, for every residue; see SetTorsions. |
| summary()method | Describe available molecular selections. |
| set_style()method | Apply a reusable molecular representation style. |
| reset_style()method | Clear atom appearance overrides and reset cartoon thickness. |
| show_atoms()method | Show ball-and-stick detail over the active representation. Chained animations may also change color, opacity, or transforms. |
| hide_atoms()method | Hide ball-and-stick detail while retaining the active representation. |
| label_residues()method | Create labels for the selected residues. Extra options go to ResidueLabels. |
| hydrogen_bonds()method | Create a hydrogen-bond analysis. Options go to HydrogenBonds. |
| electrostatics()method | Create a screened Coulomb analysis. Options go to Electrostatics. |
| from_file()class method | Load PDB or mmCIF coordinates and retain all models with matching atom identities. |
| fetch()class method | Download a PDB entry or AlphaFold DB model once, keep it in the cache, and load it. |
| from_trajectory()class method | Create a protein from the trajectory’s topology and first frame. |
| positionsproperty | Current atom coordinates in the protein’s local coordinate frame. |
| atom_progressproperty | Current interpolation fraction for each atom. |
| atom_opacitiesproperty | Current per-atom opacity, including global opacity and residue fades. |
| set_positions()method | Replace coordinates while preserving atom identities and topology. |
| copy()method | Copy the protein’s current state for independent animation; topology and trajectory are shared. |
| center()method | Move the molecular centroid to the world origin. |
| shift()method | Translate the object by an offset. |
| rotate()method | Rotate around the molecular centroid. |
| scale()method | Scale around the molecular centroid. |
| set_opacity()method | Set or animate opacity in [0, 1]. |
| set_color()method | Apply a tint across all representations. None restores the base palette. |
| color_by()method | Apply residue property colors and optional cartoon thickness before adding the protein to a scene. |
| color_residues()method | Apply a tint to the selected residues in every representation. |
| set_residue_opacity()method | Set opacity on the selected residues. |
| surface()method | Show a van der Waals, solvent-accessible, or voxel solvent-excluded surface. |
| cartoon()method | Show protein secondary structure and nucleotide backbone tubes with selectable base shapes. |
| ribbon()method | Show a continuous backbone ribbon. |
| set_bases()method | Set nucleotide base shapes and optional dimensions before a scene begins. Use BaseStyle for an animated change. |
| ball_and_stick()method | Show atom spheres and covalent bond cylinders, with element colors by default. |
| with_secondary_structure()method | Assign helix, sheet, and coil labels before adding the protein to a scene. |
| animateproperty | Create a builder for protein transforms, opacity, and color animation. |
| model_matrixproperty | Current 4 × 4 transform from local to world coordinates. |
| snapshot()method | Capture the current state for deterministic timeline evaluation. |
| restore()method | Restore a state produced by snapshot(). |
Protein.select(
*,
chain=None,
residues=None,
atoms=None,
resname=None,
ligands=False,
ions=False,
water=False,
within=None,
of=None,
residue_range=None,
element=None,
secondary=None,
polymer=None,
icode=None,
required=True,
updating=False,
)Select atoms by author chain, residue number, and atom name.
| Parameter | Default | Description |
|---|---|---|
chainkeyword only | None | Author chain ID or a collection of IDs; None selects all chains. |
residueskeyword only | None | Author residue number, inclusive (first, last) tuple, or list of individual numbers. |
atomskeyword only | None | Atom name or list of names, such as "CA"; None selects all atom names. |
resnamekeyword only | None | Residue name or names, such as "ASP" or ["HEM", "ATP"]; case-insensitive. |
ligandskeyword only | False | Select non-polymer residues other than water and single-atom ions. |
ionskeyword only | False | Select single-atom, non-carbon residues outside the traced chains, such as Ca²⁺ or Zn²⁺. |
waterkeyword only | False | Select water residues (HOH, WAT, SOL, and common MD names); load them with include_water=True. |
withinkeyword only | None | Distance in ångströms; keeps whole residues with any atom this close to of. |
ofkeyword only | None | Region or Protein used as the reference for within; its own residues are excluded when it belongs to the same protein. |
residue_rangekeyword only | None | Inclusive author residue-number range, e.g. (23, 34); do not also pass residues. |
elementkeyword only | None | Element symbol or collection of symbols, e.g. C or [N, O]. |
secondarykeyword only | None | Secondary-structure code or collection: H (helix), E (sheet), C (coil). |
polymerkeyword only | None | True selects polymer atoms, False selects non-polymers, None does not filter. |
icodekeyword only | None | Author insertion code or collection; an empty string selects no insertion code. |
requiredkeyword only | True | Raise if nothing matches; False returns None for an optional static selection. |
updatingkeyword only | False | Re-evaluate membership on access. False (default) freezes membership. |
Returns: Region
A residue tuple is an inclusive range. A list selects individual numbers. Empty selections raise ValueError.
Protein.build(
sequence,
conformation='extended',
*,
phi=None,
psi=None,
omega=180.0,
chain='A',
first=1,
hydrogens=False,
)Build an ideal peptide with every heavy atom from one-letter codes and torsion angles.
| Parameter | Default | Description |
|---|---|---|
sequence | Required | One-letter codes for the 20 standard amino acids, or a list of residue names. |
conformation | 'extended' | helix, alpha, 310, pi, strand, beta, parallel, antiparallel, ppii, extended, or left. |
phikeyword only | None | φ in degrees, one value or one per residue; overrides the conformation. |
psikeyword only | None | ψ in degrees, one value or one per residue; overrides the conformation. |
omegakeyword only | 180.0 | ω in degrees, one value or one per residue. |
chainkeyword only | 'A' | Chain ID. |
firstkeyword only | 1 | Number of the first residue. |
hydrogenskeyword only | False | Add amide H atoms. |
Returns: The scene.
Protein.secondary_structureCurrent H/E/C state of each residue, as the cartoon draws it.
Protein.set_secondary_structure(assignments)Set one H/E/C state per residue for drawing; can change between animations.
| Parameter | Default | Description |
|---|---|---|
assignments | Required | One H, E, or C per topology residue. |
Protein.assign_secondary_structure()Assign helix, strand and coil with DSSP from the current coordinates.
Protein.torsions(*, chain=None, residues=None)Measure φ, ψ, ω and χ1–χ5 in degrees for all residues, or a selection.
| Parameter | Default | Description |
|---|---|---|
chainkeyword only | None | Author chain ID or IDs; None selects all chains. |
residueskeyword only | None | Author residue number, list, or inclusive (first, last) range. |
Protein.set_torsions(*, conformation=None, anchor='center', secondary='auto', **angles)Set torsions in degrees immediately, for every residue; see SetTorsions.
| Parameter | Default | Description |
|---|---|---|
conformationkeyword only | None | Sets φ and ψ together, as in SetTorsions. |
anchorkeyword only | 'center' | Part that stays still, as in SetTorsions. |
secondarykeyword only | 'auto' | "auto" updates the cartoon to the new DSSP states; "keep" leaves it unchanged. |
**angles | — | phi, psi, omega, or chi1–chi5 in degrees, as in SetTorsions. |
Protein.summary()Describe available molecular selections.
Protein.set_style(style)Apply a reusable molecular representation style.
| Parameter | Default | Description |
|---|---|---|
style | Required | Highlight shape or line style; allowed values are specified by the constructor. |
Protein.reset_style()Clear atom appearance overrides and reset cartoon thickness.
Protein.show_atoms()Show ball-and-stick detail over the active representation. Chained animations may also change color, opacity, or transforms.
Protein.hide_atoms()Hide ball-and-stick detail while retaining the active representation.
Protein.label_residues(
*,
chain=None,
residues=None,
font_size=26,
color='#edf3fc',
format='three_letter',
include_chain=True,
avoid_overlap=True,
offsets=None,
**kwargs,
)Create labels for the selected residues. Extra options go to ResidueLabels.
| Parameter | Default | Description |
|---|---|---|
chainkeyword only | None | Author chain ID or a collection of IDs; None selects all chains. |
residueskeyword only | None | Author residue number, inclusive (first, last) tuple, or list of individual numbers. |
font_sizekeyword only | 26 | Font size in pixels at a 1080-pixel image height. |
colorkeyword only | '#edf3fc' | Hex color or RGB values. For tint setters, None restores the representation’s base palette. |
formatkeyword only | 'three_letter' | Automatic residue name style: "three_letter" or "one_letter". |
include_chainkeyword only | True | Include the chain identifier in automatic residue names. |
avoid_overlapkeyword only | True | Adjust labels in the group to reduce overlap. |
offsetskeyword only | None | Map residue numbers or (chain, number, insertion_code) keys to label offsets. |
**kwargs | — | Additional keyword options described below or in the linked constructor. |
Returns: ResidueLabels
Protein.hydrogen_bonds(
*,
donors=None,
acceptors=None,
max_distance=3.5,
min_angle=150,
hydrogens='auto',
donor_h_cutoff=1.3,
)Create a hydrogen-bond analysis. Options go to HydrogenBonds.
| Parameter | Default | Description |
|---|---|---|
donorskeyword only | None | Donor Region or atom indices; None uses standard amino-acid and canonical nucleotide base templates. |
acceptorskeyword only | None | Acceptor Region or atom indices; None uses standard amino-acid and canonical nucleotide base templates. |
max_distancekeyword only | 3.5 | Maximum donor–acceptor distance in ångströms. |
min_anglekeyword only | 150 | Minimum donor–hydrogen–acceptor angle in degrees. |
hydrogenskeyword only | 'auto' | "explicit", "auto", or "backbone"; controls the use of loaded or inferred hydrogens. |
donor_h_cutoffkeyword only | 1.3 | Maximum donor–hydrogen assignment distance in ångströms. |
Returns: HydrogenBonds
Protein.electrostatics(
charges='formal',
*,
dielectric=80,
screening_length=8,
cutoff=12,
min_energy=0.05,
exclude_same_residue=True,
exclude_bonded=True,
)Create a screened Coulomb analysis. Options go to Electrostatics.
| Parameter | Default | Description |
|---|---|---|
charges | 'formal' | "formal" side-chain templates or one charge per atom, in elementary charge units. |
dielectrickeyword only | 80 | Positive relative dielectric constant. |
screening_lengthkeyword only | 8 | Positive exponential screening length in ångströms; None disables screening. |
cutoffkeyword only | 12 | Distance cutoff in ångströms. |
min_energykeyword only | 0.05 | Minimum absolute pair energy to include, in kcal/mol. |
exclude_same_residuekeyword only | True | Exclude pairs within the same residue. |
exclude_bondedkeyword only | True | Exclude directly bonded pairs. |
Returns: Electrostatics
Protein.from_file(
path,
*,
chains=None,
include_water=False,
include_hydrogens=False,
secondary='auto',
assembly=None,
)Load PDB or mmCIF coordinates and retain all models with matching atom identities.
| Parameter | Default | Description |
|---|---|---|
path | Required | Input or output file path, as specified by the operation. |
chainskeyword only | None | Author chain ID or a collection of IDs; None loads all chains. |
include_waterkeyword only | False | Retain crystallographic waters; default False. |
include_hydrogenskeyword only | False | Retain explicit hydrogen/deuterium atoms; default False. Enable for side-chain and nucleotide hydrogen-bond analysis. |
secondarykeyword only | 'auto' | "auto" uses the file's helix and sheet records, or DSSP when it has none; "dssp" always computes; "file" uses records only. |
assemblykeyword only | None | Biological assembly to build from the deposited chains, such as "1"; None keeps the deposited chains. |
Returns: Protein
Keyword options: chains=None, include_water=False, include_hydrogens=False. Other hetero atoms are retained.
Protein.fetch(identifier, *, cache=None, **options)Download a PDB entry or AlphaFold DB model once, keep it in the cache, and load it.
| Parameter | Default | Description |
|---|---|---|
identifier | Required | Four-character PDB ID such as "4HHB", or AlphaFold DB ID such as "AF-P0DP23-F1". |
cachekeyword only | None | Download folder; None uses PROTEINMOTION_CACHE or ~/.cache/proteinmotion. |
**options | — | from_file() options, such as assembly="1" or chains="A". |
Protein.from_trajectory(trajectory)Create a protein from the trajectory’s topology and first frame.
| Parameter | Default | Description |
|---|---|---|
trajectory | Required | Trajectory with the same atom identities and order; None uses the protein’s trajectory. |
Returns: Protein
Protein.positionsCurrent atom coordinates in the protein’s local coordinate frame.
Returns: Array with shape (selected atoms, 3), in ångströms.
Protein.atom_progressCurrent interpolation fraction for each atom.
Protein.atom_opacitiesCurrent per-atom opacity, including global opacity and residue fades.
Protein.set_positions(xyz)Replace coordinates while preserving atom identities and topology.
| Parameter | Default | Description |
|---|---|---|
xyz | Required | Finite coordinates with shape (atoms, 3), in ångströms. |
Returns: The protein.
Protein.copy()Copy the protein’s current state for independent animation; topology and trajectory are shared.
Returns: Protein
Protein.center()Move the molecular centroid to the world origin.
Returns: The protein.
Protein.shift(vector)Translate the object by an offset.
| Parameter | Default | Description |
|---|---|---|
vector | Required | Finite 3D translation vector in ångströms. |
Returns: The object or animation builder.
Protein.rotate(angle, axis=(0, 1, 0))Rotate around the molecular centroid.
| Parameter | Default | Description |
|---|---|---|
angle | Required | Rotation angle in radians. |
axis | (0, 1, 0) | Nonzero 3D rotation axis; it is normalized internally. |
Returns: The protein or animation builder.
Protein.scale(factor)Scale around the molecular centroid.
| Parameter | Default | Description |
|---|---|---|
factor | Required | Positive scale or zoom factor. |
Returns: The protein or animation builder.
Protein.set_opacity(opacity)Set or animate opacity in [0, 1].
| Parameter | Default | Description |
|---|---|---|
opacity | Required | Opacity in [0, 1], from transparent to opaque. |
Returns: The object or animation builder.
Protein.set_color(color)Apply a tint across all representations. None restores the base palette.
| Parameter | Default | Description |
|---|---|---|
color | Required | Hex color or RGB values. For tint setters, None restores the representation’s base palette. |
Returns: The object or a Colorize animation.
Protein.color_by(values, *, scale=None, thickness=None)Apply residue property colors and optional cartoon thickness before adding the protein to a scene.
| Parameter | Default | Description |
|---|---|---|
values | Required | Numerical input values; see the shape and missing-value rules for this object. |
scalekeyword only | None | ColorScale shared by the structure, plots, and legend. None derives limits from finite values. |
thicknesskeyword only | None | Optional (minimum, maximum) positive cartoon cross-section scale factors. Missing values use 1. |
Protein.color_residues(color, *, chain=None, residues=None)Apply a tint to the selected residues in every representation.
| Parameter | Default | Description |
|---|---|---|
color | Required | Hex color or RGB values. For tint setters, None restores the representation’s base palette. |
chainkeyword only | None | Author chain ID or a collection of IDs; None selects all chains. |
residueskeyword only | None | Author residue number, inclusive (first, last) tuple, or list of individual numbers. |
Returns: The protein.
Protein.set_residue_opacity(opacity, *, chain=None, residues=None)Set opacity on the selected residues.
| Parameter | Default | Description |
|---|---|---|
opacity | Required | Opacity in [0, 1], from transparent to opaque. |
chainkeyword only | None | Author chain ID or a collection of IDs; None selects all chains. |
residueskeyword only | None | Author residue number, inclusive (first, last) tuple, or list of individual numbers. |
Returns: The protein.
Protein.surface(
*,
kind='ses',
probe_radius=1.4,
resolution=None,
grid_spacing=None,
color='secondary',
update='rebuild',
max_voxels=8000000,
)Show a van der Waals, solvent-accessible, or voxel solvent-excluded surface.
| Parameter | Default | Description |
|---|---|---|
kindkeyword only | 'ses' | Surface type: "vdw", "sas", or "ses". |
probe_radiuskeyword only | 1.4 | Solvent probe radius in ångströms. |
resolutionkeyword only | None | Spacing in Å between wire points. |
grid_spacingkeyword only | None | Surface grid spacing in Å. Smaller values add detail; preferred over legacy resolution. |
colorkeyword only | 'secondary' | Palette: secondary, base, rainbow, chain, or a fixed color. Surfaces also accept element. |
updatekeyword only | 'rebuild' | "rebuild" recalculates the surface as coordinates change; "deform" moves the reference mesh. |
max_voxelskeyword only | 8000000 | Maximum surface grid cells; increase this limit for large structures or finer grids. |
Returns: The protein.
Additional option: max_voxels=8000000 limits the grid size. Configure surface settings before the first play() call. The ses surface is a voxel approximation.
Protein.cartoon(
*,
color='secondary',
bases='slabs',
backbone_radius=0.38,
base_thickness=0.36,
base_radius=0.16,
atom_scale=None,
bond_radius=None,
)Show protein secondary structure and nucleotide backbone tubes with selectable base shapes.
| Parameter | Default | Description |
|---|---|---|
colorkeyword only | 'secondary' | Palette: secondary, base, rainbow, chain, or a fixed color. Surfaces also accept element. |
baseskeyword only | 'slabs' | Nucleotide base style: slabs, rings, sticks, ladder, or none. None in Representation preserves the current style. |
backbone_radiuskeyword only | 0.38 | Positive nucleotide cartoon tube radius in ångströms. |
base_thicknesskeyword only | 0.36 | Positive slab/ring thickness in ångströms. |
base_radiuskeyword only | 0.16 | Positive base-stick and connector radius in ångströms. |
atom_scalekeyword only | None | Multiplier applied to element van der Waals radii for ball-and-stick atoms. |
bond_radiuskeyword only | None | Covalent bond cylinder radius in ångströms. |
Returns: The protein.
Protein.ribbon(*, color='rainbow', width=1.05, bases='none')Show a continuous backbone ribbon.
| Parameter | Default | Description |
|---|---|---|
colorkeyword only | 'rainbow' | Palette: secondary, base, rainbow, chain, or a fixed color. Surfaces also accept element. |
widthkeyword only | 1.05 | Ribbon width in ångströms. |
baseskeyword only | 'none' | Nucleotide base style: slabs, rings, sticks, ladder, or none. None in Representation preserves the current style. |
Returns: The protein.
Protein.set_bases(style, *, backbone_radius=None, base_thickness=None, base_radius=None)Set nucleotide base shapes and optional dimensions before a scene begins. Use BaseStyle for an animated change.
| Parameter | Default | Description |
|---|---|---|
style | Required | slabs, rings, sticks, ladder, or none. |
backbone_radiuskeyword only | None | Positive nucleotide cartoon tube radius in ångströms. |
base_thicknesskeyword only | None | Positive slab/ring thickness in ångströms. |
base_radiuskeyword only | None | Positive base-stick and connector radius in ångströms. |
Returns: The molecule.
Protein.ball_and_stick(*, atom_scale=0.3, bond_radius=0.14, color='element')Show atom spheres and covalent bond cylinders, with element colors by default.
| Parameter | Default | Description |
|---|---|---|
atom_scalekeyword only | 0.3 | Multiplier applied to element van der Waals radii for ball-and-stick atoms. |
bond_radiuskeyword only | 0.14 | Covalent bond cylinder radius in ångströms. |
colorkeyword only | 'element' | Palette: element, base, chain, rainbow, secondary, or a fixed color. |
Returns: The protein.
Protein.with_secondary_structure(assignments)Assign helix, sheet, and coil labels before adding the protein to a scene.
| Parameter | Default | Description |
|---|---|---|
assignments | Required | One "H", "E", or "C" code per topology residue for helix, sheet, or coil. |
Returns: The protein.
Protein.animateCreate a builder for protein transforms, opacity, and color animation.
Returns: Animate
Protein.model_matrixCurrent 4 × 4 transform from local to world coordinates.
Protein.snapshot()Capture the current state for deterministic timeline evaluation.
Returns: State dictionary.
Protein.restore(s)Restore a state produced by snapshot().
| Parameter | Default | Description |
|---|---|---|
s | Required | State returned by snapshot(). |
Returns: None