<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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