Packs a new sequence onto each Polymer in the Assembly using Scwrl4.

        Notes
        -----
        The Scwrl packing score is saved in `Assembly.tags['scwrl_score']`
        for reference.

        Scwrl must be available to call. Check by running
        `isambard.external_programs.scwrl.test_scwrl`. If Scwrl is not
        available, please follow instruction here to add it:
        https://github.com/woolfson-group/isambard#external-programs

        For more information on Scwrl see [1].

        References
        ----------
        .. [1] Krivov GG, Shapovalov MV, and Dunbrack Jr RL (2009) "Improved
           prediction of protein side-chain conformations with SCWRL4.",
           Proteins.

        Parameters
        ----------
        sequences : [str]
            A list of strings containing the amino acid sequence of each
            corresponding `Polymer`. These must be the same length as the
            `Polymer`.

        Raises
        ------
        ValueError
            Raised if the sequence length does not match the number of
            monomers in the `Polymer`.

def pack_new_sequences(self, sequences):
        """Packs a new sequence onto each Polymer in the Assembly using Scwrl4.

        Notes
        -----
        The Scwrl packing score is saved in `Assembly.tags['scwrl_score']`
        for reference.

        Scwrl must be available to call. Check by running
        `isambard.external_programs.scwrl.test_scwrl`. If Scwrl is not
        available, please follow instruction here to add it:
        https://github.com/woolfson-group/isambard#external-programs

        For more information on Scwrl see [1].

        References
        ----------
        .. [1] Krivov GG, Shapovalov MV, and Dunbrack Jr RL (2009) "Improved
           prediction of protein side-chain conformations with SCWRL4.",
           Proteins.

        Parameters
        ----------
        sequences : [str]
            A list of strings containing the amino acid sequence of each
            corresponding `Polymer`. These must be the same length as the
            `Polymer`.

        Raises
        ------
        ValueError
            Raised if the sequence length does not match the number of
            monomers in the `Polymer`.
        """
        from ampal.pdb_parser import convert_pdb_to_ampal
        assembly_bb = self.backbone
        total_seq_len = sum([len(x) for x in sequences])
        total_aa_len = sum([len(x) for x in assembly_bb])
        if total_seq_len != total_aa_len:
            raise ValueError('Total sequence length ({}) does not match '
                             'total Polymer length ({}).'.format(
                                 total_seq_len, total_aa_len))
        scwrl_out = pack_sidechains(self.backbone.pdb, ''.join(sequences))
        if scwrl_out is None:
            return
        else:
            packed_structure, scwrl_score = scwrl_out
        new_assembly = convert_pdb_to_ampal(packed_structure, path=False)
        self._molecules = new_assembly._molecules[:]
        self.assign_force_field(global_settings[u'buff'][u'force_field'])
        self.tags['scwrl_score'] = scwrl_score
        return