def write_sequeces(out_file, sequences_dict):
    with open(out_file, 'wt') as writer:
        for header in sequences_dict:
            writer.write('>' + header + '\n')
            writer.write('\n'.join(
                utils.chunkstring(sequences_dict[header]['sequence'], 80)) +
                         '\n')
예제 #2
0
def clean_headers_reference_file(reference_file, outdir):
    new_reference_file = reference_file
    sequences, headers, headers_changed = get_sequence_information(
        reference_file)
    if headers_changed:
        utils.Bcolors_print(
            str('At least one of the following characters was found in sequences headers: {}.\n'
                'Replacing those with _'.format(problematic_characters) +
                '\n'), 'UNDERLINE')
        new_reference_file = \
            os.path.join(outdir, os.path.splitext(os.path.basename(reference_file))[0] + '.headers_renamed.fasta')
        with open(new_reference_file, 'wt') as writer:
            for i in sequences:
                writer.write('>' + sequences[i]['header'] + '\n')
                fasta_sequence_lines = utils.chunkstring(
                    sequences[i]['sequence'], 80)
                for line in fasta_sequence_lines:
                    writer.write(line + '\n')
    return new_reference_file, headers, sequences
예제 #3
0
def write_seq_from_sequence_dict(sequence_dict, out_fasta_file):
    """
    Write a fasta file with sequences found in sequence_dict dictionary

    Parameters
    ----------
    sequence_dict : dict
        Dictionary as follow
        sequence_dict[counter] = {'header': without_greater_sign, 'sequence': seq, 'length': seq_length_int}
    out_fasta_file : str
        Path to output fasta file

    Returns
    -------

    """
    with open(out_fasta_file, 'wt', newline='\n') as writer:
        for _, seq_info in sequence_dict.items():
            writer.write('>{header}\n'
                         '{seq}\n'.format(header=seq_info['header'],
                                          seq='\n'.join(
                                              utils.chunkstring(
                                                  seq_info['sequence'], 80))))
예제 #4
0
def write_sequence(reference_dict, writer):
    for header, sequence in reference_dict.items():
        writer.write('>' + header + '\n')
        writer.write('\n'.join(utils.chunkstring(sequence, 80)) + '\n')