<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def write_representative_sequences_file(self, outname, outdir=None, set_ids_from_model=True):
 """Write all the model's sequences as a single FASTA file. By default, sets IDs to model gene IDs. Args: outname (str):
 Name of the output FASTA file without the extension outdir (str):
 Path to output directory of downloaded files, must be set if GEM-PRO directories were not created initially set_ids_from_model (bool):
 If the gene ID source should be the model gene IDs, not the original sequence ID """


        if not outdir:
            outdir = self.data_dir
            if not outdir:
                raise ValueError('Output directory must be specified')

        outfile = op.join(outdir, outname + '.faa')

        tmp = []
        for x in self.genes_with_a_representative_sequence:
            repseq = x.protein.representative_sequence
            copied_seq_record = copy(repseq)
            if set_ids_from_model:
                copied_seq_record.id = x.id
            tmp.append(copied_seq_record)

        SeqIO.write(tmp, outfile, "fasta")

        log.info('{}: wrote all representative sequences to file'.format(outfile))
        self.genome_path = outfile
        return self.genome_path