Topology

Work with the bond and residue topology of structures

Animate Dihedrals

Inputs

Name Type Description
Atoms Geometry Atomic geometry that contains vertices and edges
Selection Bool Selection of atoms to apply this node to
Frames Collection Collection which holds the frames of the trajectory
Smoother Step Bool Ease in and out of the individual frames if interpolating
Interpolate Bool Whether to interpolate between frames of a trajectory or snap
Frame Float Which frame to select from the collection. The fraction component of the float is how much to interpolate between the current and next frame

Outputs

Name Type Description
Atoms Geometry Atomic geometry with new positions based on the trajectory

API Reference: nodes.geometry.AnimateDihedrals

Atoms to CA Curves

Inputs

Name Type Description
Atoms Geometry Atomic geometry that contains vertices and edges
Selection Bool Selection of atoms to apply this node to
BS Smoothing Float
Threshold Float Distance (Angstroms) over which subsequent CA points are treated as a new chain

Outputs

Name Type Description
Curves Geometry

API Reference: nodes.geometry.AtomsToCACurves

Atoms to Curves

Inputs

Name Type Description
Atoms Geometry Atomic geometry that contains vertices and edges
Selection Bool Points to maintain and use for splines, non-selected points are removed
Sort Points Bool Sort points first by atom_id and chain_id before splitting to curves
Cutoff Float

Outputs

Name Type Description
Curves Geometry

API Reference: nodes.geometry.AtomsToCurves

Backbone C

Inputs

Name Type Description
Method Menu

Outputs

Name Type Description
C Vector

API Reference: nodes.geometry.BackboneC

Backbone CA

Inputs

Name Type Description
Method Menu

Outputs

Name Type Description
CA Vector

API Reference: nodes.geometry.BackboneCA

Backbone N

Inputs

Name Type Description
Method Menu

Outputs

Name Type Description
N Vector

API Reference: nodes.geometry.BackboneN

Backbone NH

Inputs

Name Type Description
Menu Menu

Outputs

Name Type Description
NH Vector

API Reference: nodes.geometry.BackboneNH

Backbone O

Inputs

Name Type Description
Method Menu

Outputs

Name Type Description
O Vector

API Reference: nodes.geometry.BackboneO

Backbone Positions

Video

If the atoms have been through the “Compute Backbone” node, then the backbone atom positions will be available as attributes through this node. In the video example, the Alpha Carbons output is styled as spheres, where the position is mixed with some of the backbone posiitons. The backbone positions can also be selected from the AA residue higher or lower with the specified offset.

Inputs

Name Type Description
Method Menu

Outputs

Name Type Description
O Vector The position of the backbone O atom for the residue
C Vector The position of the backbone C atom for the residue
CA Vector The position of the backbone CA atom for the residue
N Vector The position of the backbone N atom for the residue
NH Vector

API Reference: nodes.geometry.BackbonePositions

Backbone Vector List

Inputs

Name Type Description
CA Atoms Geometry
Index Int The Index at which to sample the Position field from

Outputs

Name Type Description
Value Vector Output list with evaluated field values
CA Atoms Geometry

API Reference: nodes.geometry.BackboneVectorList

Backbone Vectors

The Vectors that are useful for a curve when reading from a peptide backbone

Calculate Normal, Tangent and Bitangent values from protein backbone atom positions

Inputs

Name Type Description
Method Menu

Outputs

Name Type Description
Normal Vector The vector used for the Normal of a curve when reading positions from a peptide backbone
Tangent Vector The vector used as the Tangent for a curve when reading values from a peptide backbone
Bitangent Vector Cross product of the Normal and Tangent

API Reference: nodes.geometry.BackboneVectors

Bond Count

The number of bonds for an atom

Inputs

Name Type Description
Index Int

Outputs

Name Type Description
Is Bonded Bool If the point has an edge / bond to another point
Bonds Int The number of bonds or edges that a point has

API Reference: nodes.geometry.BondCount

Break Bonds

Inputs

Name Type Description
Atoms Geometry Atomic geometry that contains vertices and edges
Selection Bool Selection of atoms to apply this node to
Cutoff Float Cutoff distance over which to remove bonds (Angstrom)

Outputs

Name Type Description
Atoms Geometry Atomic geometry that contains vertices and edges

API Reference: nodes.geometry.BreakBonds

Chain Parameter

Information for each residue within the context of the chain

Read information about the residues within the context of each chain

Outputs

Name Type Description
Factor Float A residues relative position along a chain. 0 being the first residue in a chain, 1 being the last
Residue Count Int Number of residues in the chain
Residue Index Int Res ID along the chain if counting from 1
First res_id Int The first Res ID in a chain (truncated chains start above 1)
Last res_id Int The Res ID of the last residue in chain (not equal to Length if chain is truncated)
Index of First Int Index in whole structure of the first atom in the chain
Index of Last Int Index in the whole structure the last atom in the chain

API Reference: nodes.geometry.ChainParameter

Color Backbone

Video

Select colors for atoms that are part of the backbone or the side chain of a peptide or nucleic acid polymer. Atoms that are neither maintain their current Color attribute

Inputs

Name Type Description
Backbone Color
Side Chain Color

Outputs

Name Type Description
Color Color

API Reference: nodes.geometry.ColorBackbone

Curve Offset Dihedral

Offset from the current point a number of points, then use their Position and Normal to calculat a dihdral angle between them

Calculate the Dihredral angle between the current point and another point offset along the curve, using their Normals

Inputs

Name Type Description
Position Vector The vector to use as the B & C components for Dihedral Angle calculation
Normal Vector The normal that will be added the Position to create the A & D components of the dihedral calcaulation
Index Int The index of the current point to calculate from
Offset Int The number of points to offset before calculating the angle

Outputs

Name Type Description
Angle Float The calculated angle in radians

API Reference: nodes.geometry.CurveOffsetDihedral

Dihedral Chi Angle

Outputs

Name Type Description
Angle Float
Up Vector
Axis Vector

API Reference: nodes.geometry.DihedralChiAngle

Dihedral Nucleic Angle

Outputs

Name Type Description
Angle Float The angle between the vectors AB and CD, when made perpendicular to BC.
Up Vector The vector BA when made perpendicular to the axis BC
Axis Vector The axis vector BC

API Reference: nodes.geometry.DihedralNucleicAngle

Dihedral Phi

Inputs

Name Type Description
Menu Menu

Outputs

Name Type Description
Phi Float The calculated Phi angle for the residue, in the range of (-pi, pi)
Up Vector The perpendicular vector from the line of BC to the point A
Axis Vector The vector BC corresponding to the backbone vector around which the angle is calculated

API Reference: nodes.geometry.DihedralPhi

Dihedral Psi

Inputs

Name Type Description
Method Menu

Outputs

Name Type Description
Psi Float The calculated Psi angle for the residue, in the range of (-pi, pi)
Up Vector The perpendicular vector from the line of BC to the point A
Axis Vector The vector BC corresponding to the backbone vector around which the angle is calculated

API Reference: nodes.geometry.DihedralPsi

Edge Group ID

Check if both vertices of an edge are in the same Group ID.

Inputs

Name Type Description
Group ID Int

Outputs

Name Type Description
Difference Int
Is Equal Bool

API Reference: nodes.geometry.EdgeGroupID

Edge Info

Video

Get information for the selected edge, evaluated on the point domain. The “Edge Index” selects the edge from all possible connected edges. Edges are unfortunately stored somewhat randomly. The resulting information is between the evaluating point and the point that the edge is between. Point Index returns -1 if not connected. In the video example, cones are instanced on each point where the Edge Index returns a valid connection. The Edge Vector can be used to align the instanced cone along that edge. The length of the edge can be used to scale the cone to the other point. As the “Edge Index” is changed, the selected edge changes. When “Edge Index” == 3, only the atoms with 4 connections are selected, which in this model (1BNA) are just the phosphates.

Inputs

Name Type Description
Vertex Index Int
Edge Index Int Index within the gorup of edges that are connected to this point

Outputs

Name Type Description
Is Valid Bool Whether there is a valid edge corresponding to the given index
Point Index Int The index for the other point involved in this edge, -1 if not connected
Point Position Vector The position for the other point involved in this edge, (0, 0, 0) if not connected
Edge Index Int The index on the edge domain for the selected edge. -1 if not connected
Edge Vector Vector The vector along the selected edge. (0, 0, 0) if not connected
Edge Length Float Length of the selected edge, -1 if not connected

API Reference: nodes.geometry.EdgeInfo

Find Bonded Atom

Inputs

Name Type Description
Index Int
Method Menu
Atom Name Menu
Distance Int

Outputs

Name Type Description
Is Valid Bool
Index Int
Position Vector

API Reference: nodes.geometry.FindBondedAtom

Find Bonds

Inputs

Name Type Description
Atoms Geometry Atomic geometry that contains vertices and edges
Selection Bool Selection of atoms to apply this node to
Scale Float Scale the VDW radii of the atoms when searching for bonds

Outputs

Name Type Description
Atoms Geometry

API Reference: nodes.geometry.FindBonds

Nucleic Chi

Rotate the Chi angles for nucleic acid side chains

Inputs

Name Type Description
Position Vector
Selection Bool The resulting selection must overlap with this input selection
X1 Float Amount to rotate around the axis

Outputs

Name Type Description
Position Vector Transformed vector

API Reference: nodes.geometry.NucleicChi

Nucleic Dihedral

Rotate the dihedral angles for nucleic acid backbone

Inputs

Name Type Description
Position Vector
Selection Bool The resulting selection must overlap with this input selection
Alpha Float
Beta Float
Gamma Float
Epsilon Float
Zeta Float Amount to rotate around the axis

Outputs

Name Type Description
Position Vector Transformed vector

API Reference: nodes.geometry.NucleicDihedral

Peptide Chi

Rotate the Chi angles for amino acid side chains

Inputs

Name Type Description
Position Vector
Selection Bool
X1 Float
X2 Float
X3 Float
X4 Float
X5 Float

Outputs

Name Type Description
Position Vector

API Reference: nodes.geometry.PeptideChi

Peptide Dihedral

Rotate the atoms cumulatively for each residue, adjusting the phi and psi angles for the selected residues

Inputs

Name Type Description
Position Vector
Selection Bool The resulting selection must overlap with this input selection
Phi Float
Psi Float

Outputs

Name Type Description
Position Vector Transformed vector

API Reference: nodes.geometry.PeptideDihedral

Point Edge Angle

Video

Calculate the angle between two edges, selected with the edge indices. For molecule bonds, combinations of [(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)] will select all possible bond angles. In the video example, two edges are selected with their “Edge Index” values. Those atoms which aren’t valid return false and do not get instanced. The two edge vectors are used to calculate the perpendicular vector through cross product, around which the rotation for the cone is rotated. This demonstrates the ability to calculate the edge angle between the two selected edges.

Inputs

Name Type Description
Vertex Index Int The index of the point at which to evaluate this node
Edge A Int The index of the edges of this point to select
Edge B Int The index of the edges of this point to select

Outputs

Name Type Description
Is Valid Bool Both of the selected edges are valid
Angle Float Angle between the two selected edges in radians. Returns 0 if not valid
Edge Index A Int Index for “Edge A” in the Edge domain of the geometry. Returns -1 if not valid
Edge Index B Int Index for “Edge B” in the Edge domain of the geometry. Returns -1 if not valid
Edge Vector A Vector Vector from the current point to the other point in Edge A. Returns (0, 0, 0) if not valid.
Edge Vector B Vector Vector from the current point to the other point in Edge B. Returns (0, 0, 0) if not valid.

API Reference: nodes.geometry.PointEdgeAngle

Points of Edge

Video

Finds the conntected point for the selected “Edge Index”, and returns each point index for all of the points connected to that point. If the connection doesn’t exist, or the connection is back to the original point, -1 is returned. In the video example, a new point is selected based on the “Edge Index”. At that point, all of the connecting points are exposed as indices 0, 1, 2, 3. If that index is not a valid point or connection, or the point is the same as the original point that is being evaluated, then -1 is returned. This is one of the more complicated topology nodes, but allows indexing of the atoms that are bonded to a bonded atom. This helps with doing calculations for planar molecules.

Inputs

Name Type Description
Vertex Index Int
Edge Index Int Index within the gorup of edges that are connected to this point

Outputs

Name Type Description
0 Int Index for the 0th point, connected to the point at the end of the selected edge. Returns -1 if not connected or self
1 Int Index for the 1th point, connected to the point at the end of the selected edge. Returns -1 if not connected or self
2 Int Index for the 2th point, connected to the point at the end of the selected edge. Returns -1 if not connected or self
3 Int Index for the 3th point, connected to the point at the end of the selected edge. Returns -1 if not connected or self
Total Int Number of edges conncted to the connected point, including this edge

API Reference: nodes.geometry.PointsOfEdge

Residue Dihedral Angle

Inputs

Name Type Description
A Int Atom to pick from the group
C Int Atom to pick from the group
D Int Atom to pick from the group

Outputs

Name Type Description
Value Float
BA⟂(BC) Vector The vector BA when made perpendicular to the axis BC
CD⟂(BC) Vector The Vector CD when makde perpendicular to the axis BC
BC Vector The axis vector BC

API Reference: nodes.geometry.ResidueDihedralAngle

Residue Mask

Video

Returns the index for the atom for each unique group (from res_id) for each point in that group. Allows for example, all atoms in a group to be rotated around the position of the selected atom. In the video example, the atom_name is used to select an atom within the groups. Each atom’s position is then offset to that position, showing the group-wise selection.

Inputs

Name Type Description
atom_name Int Atom to pick from the group

Outputs

Name Type Description
Is Valid Bool Group contains only one occurrance of the selected atom. None or more than one returns False
Index Int Index for the group’s atom with specified name, returns -1 if not valid
Position Vector Position of the picked point in the group, returns (0, 0, 0) if not valid

API Reference: nodes.geometry.ResidueMask

Residue Parameter

Read information about the atoms with the context of each residue the atom is in

Outputs

Name Type Description
Factor Float An atom’s relative position in a residue, with the first atom being 0 and the last atom being 1
Atom Count Int Number of atoms in a residue
Atom Index Int Index of an atom in a residue when counting from 0
First atom_name Int the atom_name for the first atom in a residue
Last atom_name Int The atom_name for the last atom in a residue
Index of First Int Index (in the whole structure) for the first atom in a residue
Index of Last Int Index (in the whole structure) for the last atom in a residue

API Reference: nodes.geometry.ResidueParameter

Sample Nearest Atoms

Video

Sample the nearest atoms from another object, to get the colors or other attributes and apply them to a volume mesh.

Inputs

Name Type Description
Atoms Geometry Atomic geometry that contains vertices and edges

Outputs

Name Type Description
Color Color
b_factor Float
atomic_number Int
chain_id Int
res_id Int
res_name Int

API Reference: nodes.geometry.SampleNearestAtoms

Set Chi Angle

Inputs

Name Type Description
Geometry Geometry
Selection Bool
X1 Float
X2 Float
X3 Float
X4 Float
X5 Float

Outputs

Name Type Description
Geometry Geometry

API Reference: nodes.geometry.SetChiAngle

Set Nucleic Dihedral

Inputs

Name Type Description
Geometry Geometry
Selection Bool The resulting selection must overlap with this input selection
Alpha Float
Beta Float
Gamma Float
Epsilon Float
Zeta Float Amount to rotate around the axis

Outputs

Name Type Description
Geometry Geometry

API Reference: nodes.geometry.SetNucleicDihedral

Set Phi Psi Angle

Inputs

Name Type Description
Geometry Geometry
Selection Bool
Phi Float
Psi Float

Outputs

Name Type Description
Geometry Geometry

API Reference: nodes.geometry.SetPhiPsiAngle

Set URes ID

Inputs

Name Type Description
Geometry Geometry

Outputs

Name Type Description
Geometry Geometry

API Reference: nodes.geometry.SetUResID

Structure Parameter

Read information about the atoms with the context of the whole structure

Outputs

Name Type Description
Atom Factor Float Factor of the atom within the structure, which is the relative position of the Index within the overall structure between 0 and 1
Index Int Index of the point within the structure. Equal to the Index input node
Atom Count Int Number of atoms in the structure, equal to the size of the Point Domain
Index of First Int Index of first atom in the entire structure, which will always be 0
Index of Last Int Index of last atom in the entire structure. Equal to Atom Count - 1
Residue Factor Float
Residue Index Int A unique Group ID that increases whenever Sub Group ID or Group ID change
Residue Count Int

API Reference: nodes.geometry.StructureParameter

Switch Residue Name

Inputs

Name Type Description
ALA Int
ARG Int
ASN Int
ASP Int
CYS Int
GLU Int
GLN Int
GLY Int
HIS Int
ILE Int
LEU Int
LYS Int
MET Int
PHE Int
PRO Int
SER Int
THR Int
TRP Int
TYR Int
VAL Int

Outputs

Name Type Description
Output Int

API Reference: nodes.geometry.SwitchResidueName

Topology DSSP

Calculate the secondary structure attributes for the protein chains, based on the 1983 Kabsch algorithm

Calculate the secondary structure of a structure, storing it on the sec_struct attribute.

Inputs

Name Type Description
Atoms Geometry Atomic geometry that contains vertices and edges

Outputs

Name Type Description
Atoms Geometry The input Atoms with updated sec_struct attributes based on the DSSP algorithm

API Reference: nodes.geometry.TopologyDSSP

Unique Chain ID

Compute a unique Group ID based on the chain_id attribute, but also incrememnting if subsequent points are over a cutoff distance from each other

Assumes only CA points in the geometry. Unique Group ID for each chain, incrementing if distance between CA points are greater than threshold

Inputs

Name Type Description
Cutoff Float Threshold distance over which the next points are considered to be part of a new chain

Outputs

Name Type Description
Group ID Int Calculated Group ID attribute

API Reference: nodes.geometry.UniqueChainID

Unique Residue ID

A unique Group ID that is calculated for every residue in the structure

Outputs

Name Type Description
Group ID Int A unique Group ID for eash residue

API Reference: nodes.geometry.UniqueResidueID

Visualize Chi Angle

Inputs

Name Type Description
Geometry Geometry
Selection Bool
Factor Float
Value Float A value which will be scaled appropriately for the world
Radius Float

Outputs

Name Type Description
Mesh Geometry
Curve Geometry

API Reference: nodes.geometry.VisualizeChiAngle

Visualize Relative Atoms

Inputs

Name Type Description
Atoms Geometry
Selection Bool
Scale Float
Position Vector
Target Index Int Index for the selected point to measure to
Target Position Vector

Outputs

Name Type Description
Instances Geometry

API Reference: nodes.geometry.VisualizeRelativeAtoms