docs: def get_surface_subseq_3D(protein,
                                depth_prop='RES_DEPTH-msms', depth_cutoff=2.5, depth_condition='<',
                                acc_prop='RSA_ALL-freesasa_het', acc_cutoff=25, acc_condition='>'):
          """SURFACE 3D = NOTDEEP + ACC"""
          empty = {'surface_3D': {'subseq_len'    : 0, 'subseq': None,
                                     'subseq_resnums': []},
                      'notdeep_3D': {'subseq_len'    : 0, 'subseq': None,
                                     'subseq_resnums': []},
                      'acc_3D'    : {'subseq_len'    : 0, 'subseq': None,
                                     'subseq_resnums': []}}
          if not protein.representative_structure:
              log.error('{}: no representative structure, cannot search for subseq'.format(protein.id))
              return empty
  
          notdeep_subseq, notdeep_subseq_resnums = protein.get_seqprop_subsequence_from_structchain_property(
              property_key=depth_prop,
              property_value=depth_cutoff,
              condition=depth_condition,
              use_representatives=True,
              return_resnums=True) or (None, [])
  
          acc_subseq, acc_subseq_resnums = protein.get_seqprop_subsequence_from_structchain_property(
              property_key=acc_prop,
              property_value=acc_cutoff,
              condition=acc_condition,
              use_representatives=True,
              return_resnums=True) or (None, [])
  
          surface_subseq_resnums = list(set(notdeep_subseq_resnums).intersection(acc_subseq_resnums))
          surface_subseq = protein.representative_sequence.get_subsequence(surface_subseq_resnums)
  
          all_info = {'surface_3D': {'subseq_len'    : len(surface_subseq_resnums), 'subseq': surface_subseq,
                                     'subseq_resnums': surface_subseq_resnums},
                      'notdeep_3D': {'subseq_len'    : len(notdeep_subseq_resnums), 'subseq': notdeep_subseq,
                                     'subseq_resnums': notdeep_subseq_resnums},
                      'acc_3D'    : {'subseq_len'    : len(acc_subseq_resnums), 'subseq': acc_subseq,
                                     'subseq_resnums': acc_subseq_resnums}}
          return all_info