docs: def get_generic_subseq_3D(protein, cutoff, prop, condition):
          """Get a subsequence from REPSEQ based on a property stored in REPSTRUCT.REPCHAIN.letter_annotations"""
          if not protein.representative_structure:
              log.error('{}: no representative structure, cannot search for subseq'.format(protein.id))
              return {'subseq_len': 0, 'subseq': None, 'subseq_resnums': []}
  
          subseq, subseq_resnums = protein.get_seqprop_subsequence_from_structchain_property(property_key=prop,
                                                                                             property_value=cutoff,
                                                                                             condition=condition,
                                                                                             use_representatives=True,
                                                                                             return_resnums=True) or (
                                   None, [])
  
          return {'subseq_len': len(subseq_resnums), 'subseq': subseq, 'subseq_resnums': subseq_resnums}