def create_fastq_line(read_id, sequence, q_values):
    """Create a fastq string from the necessary fields. Do not include newlines!

    :param read_id: unique identifier for read
    :param sequence: sequence of nucleotides
    :param q_values: quality score values associated with the sequence
    """
    # make sure we have not included newline characters
    assert read_id.find("\n") == -1, "Remove newline characterss from read_id"
    assert sequence.find("\n") == -1, "Remove newline characters from sequence"
    assert q_values.find("\n") == -1, "Remove newline characters from q_values"
    assert len(sequence) == len(q_values), "sequence and q_values must to be the same size"

    if not read_id.startswith("@"):
        read_id = '@' + read_id
    line1 = read_id + "\n"
    line2 = sequence + "\n"
    line3 = "+\n"
    fastq = line1 + line2 + line3 + q_values
    return fastq