<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_seqprop_within(self, chain_id, resnum, angstroms, only_protein=True, use_ca=False, custom_coord=None, return_resnums=False):
 """Get a SeqProp object of the amino acids within X angstroms of the specified chain + residue number. Args: resnum (int):
 Residue number of the structure chain_id (str):
 Chain ID of the residue number angstroms (float):
 Radius of the search sphere only_protein (bool):
 If only protein atoms (no HETATMS) should be included in the returned sequence use_ca (bool):
 If the alpha-carbon atom should be used for searching, default is False (last atom of residue used) Returns: SeqProp: Sequence that represents the amino acids in the vicinity of your residue number. """

        # XTODO: change "remove" parameter to be clean_seq and to remove all non standard amino acids
        # TODO: make return_resnums smarter
        polypep, resnums = self.get_polypeptide_within(chain_id=chain_id, resnum=resnum, angstroms=angstroms, use_ca=use_ca,
                                                      only_protein=only_protein, custom_coord=custom_coord,
                                                      return_resnums=True)

        # final_seq = polypep.get_sequence()
        # seqprop = SeqProp(id='{}-{}_within_{}_of_{}'.format(self.id, chain_id, angstroms, resnum),
        #                   seq=final_seq)

        chain_subseq = self.chains.get_by_id(chain_id).get_subsequence(resnums)

        if return_resnums:
            return chain_subseq, resnums
        else:
            return chain_subseq