Reference navigation
On this page
CLASS · v0.9.1
ColorScale
A fixed linear scale mapping scalar values to RGB colors.
from proteinmotion import ColorScaleConstructor
ColorScale(vmin, vmax, *, colors=('#355f9e', '#56c5bd', '#f5d477'), missing='#87909c')Parameters
| Parameter | Default | Description |
|---|---|---|
vmin | Required | Finite lower limit of the fixed color scale. |
vmax | Required | Finite upper limit, greater than vmin. |
colorskeyword only | ('#355f9e', '#56c5bd', '#f5d477') | Two or more RGB colors, interpolated between equally spaced stops. |
missingkeyword only | '#87909c' | Color for missing values (NaN). |
Notes
Values outside the limits use endpoint colors. NaN uses the missing color. Intermediate colors interpolate between equally spaced stops.
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 Full script
"""Map 1UBQ Cα B factors to residue color and cartoon thickness."""
from pathlib import Path
from proteinmotion import (
ColorByProperty,
ColorLegend,
ColorScale,
Protein,
ProteinScene,
Representation,
ResidueValues,
Rotate,
Text,
)
DATA = Path(__file__).parent / "data"
class NumericalProperties(ProteinScene):
def construct(self):
protein = Protein.from_file(DATA / "1ubq.cif").center()
values = ResidueValues.b_factors(protein)
scale = ColorScale(0, 40)
self.add(protein)
self.camera.frame(protein, margin=1.08)
self.add(Text("Residue properties", position=(0.06, 0.07), font_size=42))
self.add(Text("Ubiquitin · Cα B factors", position=(0.06, 0.13), font_size=25))
self.add(ColorLegend(scale, title="B factor", unit="Ų", position=(0.06, 0.8)))
self.play(
ColorByProperty(protein, values, scale=scale, thickness=(0.6, 1.8), residue_delay=0.012),
Rotate(protein, 0.25),
run_time=2.5,
)
self.wait(0.5)
self.play(Representation(protein, "ball_and_stick"), run_time=1.5)
self.play(Rotate(protein, 0.3), run_time=1)
self.play(Representation(protein, "surface"), run_time=1.5)
self.play(Rotate(protein, 0.25), run_time=1.5)Output Preview · 8.5 s · 60 fps
1UBQ B factors control residue color and cartoon thickness.
Methods and properties
| Name | Description |
|---|---|
| from_values()class method | Choose limits from finite values; expand a constant range by ±0.5. |
| normalize()method | Clip values to [0, 1], keeping NaN for missing data. |
| map()method | Map values to an RGB array shaped (*values.shape, 3). |
ColorScale.from_values(values, **kwargs)Choose limits from finite values; expand a constant range by ±0.5.
| Parameter | Default | Description |
|---|---|---|
values | Required | Numerical input values; see the shape and missing-value rules for this object. |
**kwargs | — | Additional keyword options described below or in the linked constructor. |
ColorScale.normalize(values)Clip values to [0, 1], keeping NaN for missing data.
| Parameter | Default | Description |
|---|---|---|
values | Required | Numerical input values; see the shape and missing-value rules for this object. |
ColorScale.map(values)Map values to an RGB array shaped (*values.shape, 3).
| Parameter | Default | Description |
|---|---|---|
values | Required | Numerical input values; see the shape and missing-value rules for this object. |