Topology
DSSP
Calculate the secondary structure of a structure, storing it on the sec_struct
attribute.
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 groupwise selection.
Outputs
Is Valid 
Bool 
Group contains only one occurrance of the selected atom. None or more than one returns False 
False 
Index 
Int 
Index for the group’s atom with specified name, returns 1 if not valid 
0 
Position 
Vector 
Position of the picked point in the group, returns (0, 0, 0) if not valid 
[0.0, 0.0, 0.0] 
Group ID 
Int 

0 
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.
Outputs
O 
Vector 

[0.0, 0.0, 0.0] 
C 
Vector 

[0.0, 0.0, 0.0] 
CA 
Vector 

[0.0, 0.0, 0.0] 
N 
Vector 

[0.0, 0.0, 0.0] 
Dihedral Phi
Outputs
Phi 
Float 

0.0 
BA⟂(BC) 
Vector 

[0.0, 0.0, 0.0] 
CD⟂(BC) 
Vector 

[0.0, 0.0, 0.0] 
BC 
Vector 

[0.0, 0.0, 0.0] 
Dihedral Psi
Outputs
Psi 
Float 

0.0 
BA⟂(BC) 
Vector 

[0.0, 0.0, 0.0] 
CD⟂(BC) 
Vector 

[0.0, 0.0, 0.0] 
BC 
Vector 

[0.0, 0.0, 0.0] 
Backbone Position
Return the backbone position for the peptide residue, and recalculate if the attribute doesn’t exist
Outputs
Position 
Vector 

[0.0, 0.0, 0.0] 
Res Info
Read information about the atoms with the context of each residue the atom is in
Outputs
Factor 
Float 
An atom’s relative position in a residue, with the first atom being 0 and the last atom being 1 
0.0 
Length 
Int 
Number of atoms in a residue 
0 
Counted Index 
Int 
Index of an atom in a residue when counting from 0 
0 
First atom_name 
Int 
the atom_name for the first atom in a residue 
0 
Last atom_name 
Int 
The atom_name for the last atom in a residue 
0 
First Index 
Int 
Index (in the whole structure) for the first atom in a residue 
0 
Last Index 
Int 
Index (in the whole structure) for the last atom in a residue 
0 
Chain Info
Read information about the residues within the context of each chain
Outputs
Factor 
Float 
A residues relative position along a chain. 0 being the first residue in a chain, 1 being the last 
0.0 
Length 
Int 
Number of residues in the chain 
0 
Counted Index 
Int 
Res ID along the chain if counting from 1 
0 
First Res ID 
Int 
The first Res ID in a chain (truncated chains start above 1) 
0 
Last Res ID 
Int 
The Res ID of the last residue in chain (not equal to Length if chain is truncated) 
0 
Index First 
Int 
Index in whole structure of the first atom in the chain 
0 
Index Last 
Int 
Index in the whole structure the last atom in the chain 
0 
Res Group ID
A unique Group ID that is calculated for every residue in the structure
Outputs
Unique Group ID 
Int 
A unique Group ID for eash residue 
0 
Find Bonds
Finds bonds between atoms based on distance. Based on the vdw_radii for each point, finds other points within a certain radius to create a bond to. Does not preserve the index for the points, detect bond type, or transfer all attributes
Break Bonds
Will delete a bond between atoms that already exists based on a distance cutoff, or is selected in the Selection
input. Leaves the atoms unaffected
Outputs
Atoms 
Geometry 
Atomic geometry that contains vertices and edges 
required 
Bond Count
The number of bonds for an atom
Outputs
Is Bonded 
Bool 

False 
Bonds 
Int 
The number of bonds or edges that a point has 
0 
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.
Outputs
Is Valid 
Bool 
Whether there is a valid edge corresponding to the given index 
False 
Point Index 
Int 
The index for the other point involved in this edge, 1 if not connected 
1 
Point Position 
Vector 
The position for the other point involved in this edge, (0, 0, 0) if not connected 
[0.0, 0.0, 0.0] 
Edge Index 
Int 
The index on the edge domain for the selected edge. 1 if not connected 
1 
Edge Vector 
Vector 
The vector along the selected edge. (0, 0, 0) if not connected 
[0.0, 0.0, 0.0] 
Edge Length 
Float 
Length of the selected edge, 1 if not connected 
1.0 
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.
Outputs
Is Valid 
Bool 
Whether both edges are valid corresponding to the given indices and are not the same 
False 
Angle 
Float 
Angle between the two selected edges in radians. Returns 1 if not valid. 
1.0 
Edge Index A 
Int 
Index for “Edge A” in the Edge domain of the geometry. Returns 1 if not valid 
1 
Edge Index B 
Int 
Index for “Edge B” in the Edge domain of the geometry. Returns 1 if not valid 
1 
Edge Vector A 
Vector 
Vector from the current point to the other point in Edge A. Returns (0, 0, 0) if not valid. 
[0.0, 0.0, 0.0] 
Edge Vector B 
Vector 
Vector from the current point to the other point in Edge B. Returns (0, 0, 0) if not valid. 
[0.0, 0.0, 0.0] 
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.
Outputs
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 
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 
1 
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 
1 
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 
1 
Total 
Int 
Number of edges conncted to the connected point, including this edge 
0 