Given a vector of chains, each represented as a 3-dimensional array of size 3x4xL, this function assigns the secondary structure to each residue. In these arrays:

  • The first dimension corresponds to the x, y, and z coordinates of the atoms.
  • The second dimension represents the atom type, ordered as N, CA, C, and O.
  • The third dimension specifies the residue number in the chain.

Returns a vector of vectors of integers, each of which is the secondary structure assignment for the corresponding chain and their respective residues. The integers are encoded as follows:

  • 1: coil/loop. Neither helix nor strand.
  • 2: 4-turn helix (α-helix). Minimum length 4 residues.
  • 3: extended strand in parallel and/or anti-parallel β-sheet conformation. Min length 2 residues.