docs: def get_orient_angle(self, reference_point=numpy.array([0, 0, 0]),
                           monomer_index=0, res_label='CA', radians=False):
          """ Angle between reference_point and self[monomer_index][res_label].
  
          Notes
          -----
          Angle is calculated using the dihedral angle, with the 
          second and third points coming from the curve_primitive.
  
          Parameters
          ----------
          reference_point : list, tuple or numpy.array of length 3.
          monomer_index : int
              Index of the Residue to centre.
          res_label : str
              Atom name for centred atom, e.g. "CA" or "OE1".
          radians : bool
              If True, then desired_angle is in radians instead of degrees.
          """
          if (monomer_index < len(self)) and monomer_index != -1:
              adjacent_index = monomer_index + 1
          elif (monomer_index == len(self)) or monomer_index == -1:
              adjacent_index = monomer_index - 1
          else:
              raise ValueError(
                  "centred_index ({0}) cannot be greater than the "
                  "length of the polymer ({1})".format(
                      monomer_index, len(self)))
          angle = dihedral(reference_point,
                           self.curve_primitive[monomer_index]['CA'],
                           self.curve_primitive[adjacent_index]['CA'],
                           self[monomer_index][res_label])
          if radians:
              angle = numpy.deg2rad(angle)
          return angle