def create_fastq_from_fasta(fasta_file, output_fastq, depth=20, read_length
    =250, insert_size=350, insert_std=10, platform='MSv1', quality_shift=0):
    """
    Creates a command to send to art_illumina to create simulated FASTQ files. Also does some renaming,
    since I don't like ART's naming scheme for paired-end reads.
    :param fasta_file: Path to uncompressed fasta file to simulate reads from.
    :param output_fastq: Base name for output fastq file.
    :param depth: Desired coverage depth.
    :param read_length: Read length - allowable values for this change based on the platform chosen.
    :param insert_size: Desired insert size (by insert, ART means fragment length)
    :param insert_std: Standard deviation of insert size.
    :param platform: Sequencing platform. Defaults to MSv1, since MSv3 quality profiles look very wrong.
    :param quality_shift: Amount to quality shift bases by. Positive value for better quality, negative for lower.
    :return: cmd - the command to run which will run ART, and rename files to make
    """
    cmd = (
        'art_illumina -ss {platform} -i {input_fasta} -l {read_length} -na -p -f {depth} -m {insert_size} -s {insert_std} -o {output_fastq} -qs {quality_shift} -qs2 {quality_shift}'
        .format(input_fasta=fasta_file, output_fastq=output_fastq, depth=
        depth, read_length=read_length, insert_size=insert_size, insert_std
        =insert_std, platform=platform, quality_shift=quality_shift))
    cmd += ' && mv {fastq_name}1.fq {fastq_name}_R1.fastq'.format(fastq_name
        =output_fastq)
    cmd += ' && mv {fastq_name}2.fq {fastq_name}_R2.fastq'.format(fastq_name
        =output_fastq)
    return cmd
