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