Rotates `Atom` by `angle`.

        Parameters
        ----------
        angle : float
            Angle that `Atom` will be rotated.
        axis : 3D Vector (tuple, list, numpy.array)
            Axis about which the `Atom` 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.

def rotate(self, angle, axis, point=None, radians=False):
        """Rotates `Atom` by `angle`.

        Parameters
        ----------
        angle : float
            Angle that `Atom` will be rotated.
        axis : 3D Vector (tuple, list, numpy.array)
            Axis about which the `Atom` 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.
        """
        q = Quaternion.angle_and_axis(angle=angle, axis=axis, radians=radians)
        self._vector = q.rotate_vector(v=self._vector, point=point)
        return