def add_residue_COM(self, residue_indices, scheme='all', ref_geom=None, image_molecules=False, mass_weighted=True,):
        r"""
        Adds a per-residue center of mass (COM) in cartesian coordinates.
        No periodic boundaries are taken into account.

        Parameters
        ----------

        residue_indices : iterable of integers
            The residue indices for which the COM will be computed. These are always zero-indexed that **are not
            necessarily** the residue sequence record of the topology (resSeq). resSeq indices start at least at 1
            but can depend on the topology. See http://mdtraj.org/latest/atom_selection.html for more details.

        scheme : str, default is 'all'
            What atoms contribute to the COM computation. The supported keywords are:
            'all', 'backbone', 'sidechain' . If the scheme yields no atoms for some residue, the selection
            falls back to 'all' for that residue.

        ref_geom : obj:`mdtraj.Trajectory`, default is None
            The coordinates can be centered to a reference geometry before computing the COM.

        image_molecules : boolean, default is False
            The method traj.image_molecules will be called before computing averages. The method tries to correct
            for molecules broken across periodic boundary conditions, but can be time consuming. See
            http://mdtraj.org/latest/api/generated/mdtraj.Trajectory.html#mdtraj.Trajectory.image_molecules
            for more details

        mass_weighted : boolean, default is True
            Set to False if you want the geometric center and not the COM


        .. note::
            Centering (with :obj:`ref_geom`) and imaging (:obj:`image_molecules=True`) the trajectories can sometimes be time consuming. Consider doing that to your trajectory-files prior to the featurization.
        """

        from .misc import ResidueCOMFeature
        from pyemma.coordinates.data.featurization.util import _atoms_in_residues
        assert scheme in ['all', 'backbone', 'sidechain']

        residue_atoms = _atoms_in_residues(self.topology, residue_indices, subset_of_atom_idxs=self.topology.select(scheme), MDlogger=self.logger)

        f = ResidueCOMFeature(self.topology, np.asarray(residue_indices), residue_atoms, scheme, ref_geom=ref_geom, image_molecules=image_molecules, mass_weighted=mass_weighted)

        self.__add_feature(f)
r"""
        Adds a per-residue center of mass (COM) in cartesian coordinates.
        No periodic boundaries are taken into account.

        Parameters
        ----------

        residue_indices : iterable of integers
            The residue indices for which the COM will be computed. These are always zero-indexed that **are not
            necessarily** the residue sequence record of the topology (resSeq). resSeq indices start at least at 1
            but can depend on the topology. See http://mdtraj.org/latest/atom_selection.html for more details.

        scheme : str, default is 'all'
            What atoms contribute to the COM computation. The supported keywords are:
            'all', 'backbone', 'sidechain' . If the scheme yields no atoms for some residue, the selection
            falls back to 'all' for that residue.

        ref_geom : obj:`mdtraj.Trajectory`, default is None
            The coordinates can be centered to a reference geometry before computing the COM.

        image_molecules : boolean, default is False
            The method traj.image_molecules will be called before computing averages. The method tries to correct
            for molecules broken across periodic boundary conditions, but can be time consuming. See
            http://mdtraj.org/latest/api/generated/mdtraj.Trajectory.html#mdtraj.Trajectory.image_molecules
            for more details

        mass_weighted : boolean, default is True
            Set to False if you want the geometric center and not the COM


        .. note::
            Centering (with :obj:`ref_geom`) and imaging (:obj:`image_molecules=True`) the trajectories can sometimes be time consuming. Consider doing that to your trajectory-files prior to the featurization.