docs: def rotate(self, angle, axis, point=None, radians=False, inc_alt_states=True):
          """Rotates every atom in the AMPAL object.
  
          Parameters
          ----------
          angle : float
              Angle that AMPAL object will be rotated.
          axis : 3D Vector (tuple, list, numpy.array)
              Axis about which the AMPAL object will be rotated.
          point : 3D Vector (tuple, list, numpy.array), optional
              Point that the axis lies upon. If `None` then the origin is used.
          radians : bool, optional
              True is `angle` is define in radians, False is degrees.
          inc_alt_states : bool, optional
              If true, will rotate atoms in all states i.e. includes
              alternate conformations for sidechains.
          """
          q = Quaternion.angle_and_axis(angle=angle, axis=axis, radians=radians)
          for atom in self.get_atoms(inc_alt_states=inc_alt_states):
              atom._vector = q.rotate_vector(v=atom._vector, point=point)
          return