docs: def pack_new_sequence(self, sequence):
          """Packs a new sequence onto the polymer using Scwrl4.
  
          Parameters
          ----------
          sequence : str
              String containing the amino acid sequence. This 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.
          """
          # This import is here to prevent a circular import.
          from ampal.pdb_parser import convert_pdb_to_ampal
          polymer_bb = self.backbone
          if len(sequence) != len(polymer_bb):
              raise ValueError(
                  'Sequence length ({}) does not match Polymer length ({}).'.format(
                      len(sequence), len(polymer_bb)))
          scwrl_out = pack_sidechains(self.backbone.pdb, sequence)
          if scwrl_out is None:
              return
          else:
              packed_structure, scwrl_score = scwrl_out
          new_assembly = convert_pdb_to_ampal(packed_structure, path=False)
          self._monomers = new_assembly[0]._monomers[:]
          self.tags['scwrl_score'] = scwrl_score
          self.assign_force_field(global_settings['buff']['force_field'])
          return