Examine a list of records and generate RAxML command line arguments for tree inference.
        :param records: list of `Alignment` records
        :param executable: name of the RAxML executable on the system to use. Must be in the user's path.
        :param partition_files: List of RAxML partition files used to describe any partitioning scheme
            to be used (optional)
        :param model: Choice of model to use. Defaults to GTRGAMMA for DNA, or PROTGAMMALGX for amino acid alignments.
        :param outfiles: A list of output file locations to write results (required length = 1 per alignment)
        :param threads: Number of threads for RAxML to use. This is independent of any threading used by the
            `JobHandler`, and the user should be sure that their choice is appropriate for the number of threads
            available to their system, and for the RAxML executable being used.
        :param parsimony: Use RAxML's parsimony tree search only
        :param fast_tree: Use RAxML's experimental fast tree search (-f E)
        :return: (List of command line arguments, List of created temporary files)

def scrape_args(self, records, executable='raxmlHPC-AVX', partition_files=None,
                    model=None, outfiles=None, threads=1, parsimony=False, fast_tree=False,
                    n_starts=1):
        """
        Examine a list of records and generate RAxML command line arguments for tree inference.
        :param records: list of `Alignment` records
        :param executable: name of the RAxML executable on the system to use. Must be in the user's path.
        :param partition_files: List of RAxML partition files used to describe any partitioning scheme
            to be used (optional)
        :param model: Choice of model to use. Defaults to GTRGAMMA for DNA, or PROTGAMMALGX for amino acid alignments.
        :param outfiles: A list of output file locations to write results (required length = 1 per alignment)
        :param threads: Number of threads for RAxML to use. This is independent of any threading used by the
            `JobHandler`, and the user should be sure that their choice is appropriate for the number of threads
            available to their system, and for the RAxML executable being used.
        :param parsimony: Use RAxML's parsimony tree search only
        :param fast_tree: Use RAxML's experimental fast tree search (-f E)
        :return: (List of command line arguments, List of created temporary files)
        """
        args = []
        to_delete = []
        if partition_files is None:
            partition_files = [None for rec in records]
        if outfiles is None:
            outfiles = [None for rec in records]
        for (rec, qfile, ofile) in zip(records, partition_files, outfiles):
            if model is None:
                model = 'GTRGAMMA' if rec.is_dna() else 'PROTGAMMALGX'
            filename, delete = rec.get_alignment_file(as_phylip=True)
            if delete:
                to_delete.append(filename)
                to_delete.append(filename + '.reduced')

            if qfile is None:
                # Attempt to find partition file on disk, using extension 'partitions.txt'
                if filename.endswith('.phy'):
                    likely_qfile = filename.replace('phy', 'partitions.txt')
                else:
                    likely_qfile = filename + '.partitions.txt'
                if os.path.exists(likely_qfile):
                    qfile = likely_qfile
                else:
                    with tempfile.NamedTemporaryFile(mode='w', delete=False) as tmpfile:
                        qfile = tmpfile.name
                        to_delete.append(tmpfile.name)
                        mymodel = 'DNAX' if rec.is_dna() else model.replace('PROT', '').replace('GAMMA', '').replace('CAT', '')
                        partition_string = '{model}, {name} = 1-{seqlen}\n'.format(
                            model=mymodel,
                            name=rec.name, seqlen=len(rec))
                        tmpfile.write(partition_string)

            args.append((executable, filename, model, qfile, ofile, threads, parsimony, fast_tree, n_starts))
        return args, to_delete