seq_dict[key].append( textwrap.fill(str(records_dict[key].seq), width=60)) # formated in fasta alignments = [] for k in seq_dict: out_fasta = os.path.join(snakemake.params['TMP_D'], k + '.fa') out_aln = os.path.join(snakemake.params['TMP_D'], k + '.aln') alignments.append(out_aln) with open(out_fasta, 'w') as out_fh: out_fh.write('\n'.join(seq_dict[k])) aln = MafftCommandline(quiet=True, retree=1, thread=cores, nuc=True, globalpair=True, input=out_fasta) # print(aln()) with open(out_aln, 'w') as out_fh: out_fh.write('\n'.join(aln())) one_big_aln = AlignIO.read(alignments[0], 'fasta') one_big_aln.sort() for f in alignments: aln = AlignIO.read(f, 'fasta') aln.sort() one_big_aln = one_big_aln + aln with open(one_big_aln_f, 'w') as out_fh: AlignIO.write(one_big_aln, out_fh, 'fasta')