Generates a new `Assembly` containing only the backbone atoms.

        Notes
        -----
        Metadata is not currently preserved from the parent object.
        Sequence data is retained, but only the main chain atoms are
        retained.

        Returns
        -------
        bb_assembly : ampal.Protein
            `Assembly` containing only the backbone atoms of the original
            `Assembly`.

def backbone(self):
        """Generates a new `Assembly` containing only the backbone atoms.

        Notes
        -----
        Metadata is not currently preserved from the parent object.
        Sequence data is retained, but only the main chain atoms are
        retained.

        Returns
        -------
        bb_assembly : ampal.Protein
            `Assembly` containing only the backbone atoms of the original
            `Assembly`.
        """
        bb_molecules = [
            p.backbone for p in self._molecules if hasattr(p, 'backbone')]
        bb_assembly = Assembly(bb_molecules, assembly_id=self.id)
        return bb_assembly