docs: def get_sliding_window_properties(self, scale, window):
          """Run a property calculator given a sliding window size
  
          Stores statistics in the ``letter_annotations`` attribute.
  
          Todo:
              - Add and document all scales available to set
          """
          # XTODO: documentation
          if self.seq:
              # if clean_seq:  # TODO: can't do this because letter_annotations will complain about differing seqlen
              #     seq = self.seq_str.replace('X', '').replace('U', '')
              # else:
              #     seq = self.seq_str
  
              try:
                  prop = ssbio.protein.sequence.properties.residues.biopython_protein_scale(self.seq_str,
                                                                                            scale=scale,
                                                                                            window=window)
              except KeyError as e:
                  log.error('{}: unable to run ProteinAnalysis module, unknown amino acid {}'.format(self.id, e))
                  return
              except ValueError as e:
                  log.error('{}: unable to run ProteinAnalysis module, {}'.format(self.id, e))
                  return
              self.letter_annotations['{}-window{}-biop'.format(scale, window)] = prop
          else:
              raise ValueError('{}: no sequence available, unable to run ProteinAnalysis'.format(self.id))