ProteinMotion
Reference navigation
On this page

CLASS · v0.9.1

Protein

A molecular structure with fixed atom identities, coordinates, and display settings.

python
from proteinmotion import Protein

Constructor

python
Protein(topology, xyz, *, trajectory=None)

Parameters

ParameterDefaultDescription
topologyRequiredAtom identities, residues, bonds, and chains in a Topology object.
xyzRequiredFinite coordinates with shape (atoms, 3), in ångströms.
trajectorykeyword onlyNoneTrajectory 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

NameDescription
topologyAtoms, residues, covalent bonds, and chain segments.
trajectoryCoordinate states associated with this protein.
positionWorld translation as a 3-vector.
orientation3 × 3 rotation matrix.
sizePositive uniform scale factor.
opacityGlobal opacity in [0, 1].
trajectory_frameCurrent 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.

Code Scene excerpt
python
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)
Output Preview · 9.1 s · 60 fps
Representation changes

Cartoon, ribbon, ball-and-stick, and SES surface.

Methods and properties

NameDescription
select()methodSelect atoms by author chain, residue number, and atom name.
label_residues()methodCreate labels for the selected residues. Extra options go to ResidueLabels.
hydrogen_bonds()methodCreate a hydrogen-bond analysis. Options go to HydrogenBonds.
electrostatics()methodCreate a screened Coulomb analysis. Options go to Electrostatics.
from_file()class methodLoad PDB or mmCIF coordinates and retain all models with matching atom identities.
from_trajectory()class methodCreate a protein from the trajectory’s topology and first frame.
positionspropertyCurrent atom coordinates in the protein’s local coordinate frame.
atom_progresspropertyCurrent interpolation fraction for each atom.
atom_opacitiespropertyCurrent per-atom opacity, including global opacity and residue fades.
set_positions()methodReplace coordinates while preserving atom identities and topology.
copy()methodCopy the protein’s current state for independent animation; topology and trajectory are shared.
center()methodMove the molecular centroid to the world origin.
shift()methodTranslate the object by an offset.
rotate()methodRotate around the molecular centroid.
scale()methodScale around the molecular centroid.
set_opacity()methodSet or animate opacity in [0, 1].
set_color()methodApply a tint across all representations. None restores the base palette.
color_by()methodApply residue property colors and optional cartoon thickness before adding the protein to a scene.
color_residues()methodApply a tint to the selected residues in every representation.
set_residue_opacity()methodSet opacity on the selected residues.
surface()methodShow a van der Waals, solvent-accessible, or voxel solvent-excluded surface.
cartoon()methodShow helices, sheet arrows, and coils as a cartoon.
ribbon()methodShow a continuous backbone ribbon.
ball_and_stick()methodShow element-colored atom spheres and covalent bond cylinders.
with_secondary_structure()methodAssign helix, sheet, and coil labels before adding the protein to a scene.
animatepropertyCreate a builder for protein transforms, opacity, and color animation.
model_matrixpropertyCurrent 4 × 4 transform from local to world coordinates.
snapshot()methodCapture the current state for deterministic timeline evaluation.
restore()methodRestore a state produced by snapshot().
python
Protein.select(*, chain=None, residues=None, atoms=None)

Select atoms by author chain, residue number, and atom name.

ParameterDefaultDescription
chainkeyword onlyNoneAuthor chain ID or a collection of IDs; None selects all chains.
residueskeyword onlyNoneAuthor residue number, inclusive (first, last) tuple, or list of individual numbers.
atomskeyword onlyNoneAtom name or list of names, such as "CA"; None selects all atom names.

Returns: Region

A residue tuple is an inclusive range. A list selects individual numbers. Empty selections raise ValueError.

python
Protein.label_residues(*, chain=None, residues=None, **kwargs)

Create labels for the selected residues. Extra options go to ResidueLabels.

ParameterDefaultDescription
chainkeyword onlyNoneAuthor chain ID or a collection of IDs; None selects all chains.
residueskeyword onlyNoneAuthor residue number, inclusive (first, last) tuple, or list of individual numbers.
**kwargsAdditional keyword options described below or in the linked constructor.

Returns: ResidueLabels

python
Protein.hydrogen_bonds(**kwargs)

Create a hydrogen-bond analysis. Options go to HydrogenBonds.

ParameterDefaultDescription
**kwargsAdditional keyword options described below or in the linked constructor.

Returns: HydrogenBonds

python
Protein.electrostatics(charges='formal', **kwargs)

Create a screened Coulomb analysis. Options go to Electrostatics.

ParameterDefaultDescription
charges'formal'"formal" side-chain templates or one charge per atom, in elementary charge units.
**kwargsAdditional keyword options described below or in the linked constructor.

Returns: Electrostatics

python
Protein.from_file(path, **kwargs)

Load PDB or mmCIF coordinates and retain all models with matching atom identities.

ParameterDefaultDescription
pathRequiredInput or output file path, as specified by the operation.
**kwargsAdditional keyword options described below or in the linked constructor.

Returns: Protein

Keyword options: chains=None, include_water=False, include_hydrogens=False. Other hetero atoms are retained.

python
Protein.from_trajectory(trajectory)

Create a protein from the trajectory’s topology and first frame.

ParameterDefaultDescription
trajectoryRequiredTrajectory with the same atom identities and order; None uses the protein’s trajectory.

Returns: Protein

python
Protein.positions

Current atom coordinates in the protein’s local coordinate frame.

Returns: Array with shape (selected atoms, 3), in ångströms.

python
Protein.atom_progress

Current interpolation fraction for each atom.

python
Protein.atom_opacities

Current per-atom opacity, including global opacity and residue fades.

python
Protein.set_positions(xyz)

Replace coordinates while preserving atom identities and topology.

ParameterDefaultDescription
xyzRequiredFinite coordinates with shape (atoms, 3), in ångströms.

Returns: The protein.

python
Protein.copy()

Copy the protein’s current state for independent animation; topology and trajectory are shared.

Returns: Protein

python
Protein.center()

Move the molecular centroid to the world origin.

Returns: The protein.

python
Protein.shift(vector)

Translate the object by an offset.

ParameterDefaultDescription
vectorRequiredFinite 3D translation vector in ångströms.

Returns: The object or animation builder.

python
Protein.rotate(angle, axis=(0, 1, 0))

Rotate around the molecular centroid.

ParameterDefaultDescription
angleRequiredRotation angle in radians.
axis(0, 1, 0)Nonzero 3D rotation axis; it is normalized internally.

Returns: The protein or animation builder.

python
Protein.scale(factor)

Scale around the molecular centroid.

ParameterDefaultDescription
factorRequiredPositive scale or zoom factor.

Returns: The protein or animation builder.

python
Protein.set_opacity(opacity)

Set or animate opacity in [0, 1].

ParameterDefaultDescription
opacityRequiredOpacity in [0, 1], from transparent to opaque.

Returns: The object or animation builder.

python
Protein.set_color(color)

Apply a tint across all representations. None restores the base palette.

ParameterDefaultDescription
colorRequiredHex color or RGB values. For tint setters, None restores the representation’s base palette.

Returns: The object or a Colorize animation.

python
Protein.color_by(values, *, scale=None, thickness=None)

Apply residue property colors and optional cartoon thickness before adding the protein to a scene.

ParameterDefaultDescription
valuesRequiredNumerical input values; see the shape and missing-value rules for this object.
scalekeyword onlyNoneColorScale shared by the structure, plots, and legend. None derives limits from finite values.
thicknesskeyword onlyNoneOptional (minimum, maximum) positive cartoon cross-section scale factors. Missing values use 1.
python
Protein.color_residues(color, *, chain=None, residues=None)

Apply a tint to the selected residues in every representation.

ParameterDefaultDescription
colorRequiredHex color or RGB values. For tint setters, None restores the representation’s base palette.
chainkeyword onlyNoneAuthor chain ID or a collection of IDs; None selects all chains.
residueskeyword onlyNoneAuthor residue number, inclusive (first, last) tuple, or list of individual numbers.

Returns: The protein.

python
Protein.set_residue_opacity(opacity, *, chain=None, residues=None)

Set opacity on the selected residues.

ParameterDefaultDescription
opacityRequiredOpacity in [0, 1], from transparent to opaque.
chainkeyword onlyNoneAuthor chain ID or a collection of IDs; None selects all chains.
residueskeyword onlyNoneAuthor residue number, inclusive (first, last) tuple, or list of individual numbers.

Returns: The protein.

python
Protein.surface(
    *,
    kind='ses',
    probe_radius=1.4,
    resolution=0.7,
    color='secondary',
    update='rebuild',
    **kwargs,
)

Show a van der Waals, solvent-accessible, or voxel solvent-excluded surface.

ParameterDefaultDescription
kindkeyword only'ses'Surface type: "vdw", "sas", or "ses".
probe_radiuskeyword only1.4Solvent probe radius in ångströms.
resolutionkeyword only0.7Surface grid spacing in ångströms; smaller values increase detail and cost.
colorkeyword only'secondary'Base palette: "secondary", "rainbow", "chain", or a fixed color.
updatekeyword only'rebuild'"rebuild" recalculates the surface as coordinates change; "deform" moves the reference mesh.
**kwargsAdditional keyword options described below or in the linked constructor.

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.

python
Protein.cartoon(*, color='secondary')

Show helices, sheet arrows, and coils as a cartoon.

ParameterDefaultDescription
colorkeyword only'secondary'Base palette: "secondary", "rainbow", "chain", or a fixed color.

Returns: The protein.

python
Protein.ribbon(*, color='rainbow', width=1.05)

Show a continuous backbone ribbon.

ParameterDefaultDescription
colorkeyword only'rainbow'Base palette: "secondary", "rainbow", "chain", or a fixed color.
widthkeyword only1.05Ribbon width in ångströms.

Returns: The protein.

python
Protein.ball_and_stick(*, atom_scale=0.3, bond_radius=0.14)

Show element-colored atom spheres and covalent bond cylinders.

ParameterDefaultDescription
atom_scalekeyword only0.3Multiplier applied to element van der Waals radii for ball-and-stick atoms.
bond_radiuskeyword only0.14Covalent bond cylinder radius in ångströms.

Returns: The protein.

python
Protein.with_secondary_structure(assignments)

Assign helix, sheet, and coil labels before adding the protein to a scene.

ParameterDefaultDescription
assignmentsRequiredOne "H", "E", or "C" code per topology residue for helix, sheet, or coil.

Returns: The protein.

python
Protein.animate

Create a builder for protein transforms, opacity, and color animation.

Returns: Animate

python
Protein.model_matrix

Current 4 × 4 transform from local to world coordinates.

python
Protein.snapshot()

Capture the current state for deterministic timeline evaluation.

Returns: State dictionary.

python
Protein.restore(s)

Restore a state produced by snapshot().

ParameterDefaultDescription
sRequiredState returned by snapshot().

Returns: None