code: def muscle_align_protein(recs, work_dir, outfmt="fasta", inputorder=True):
      
      fasta_file = op.join(work_dir, "prot-start.fasta")
      align_file = op.join(work_dir, "prot.aln")
      SeqIO.write(recs, file(fasta_file, "w"), "fasta")
  
      muscle_cl = MuscleCommandline(cmd=MUSCLE_BIN("muscle"),
              input=fasta_file, out=align_file, seqtype="protein",
              clwstrict=True)
      stdout, stderr = muscle_cl()
      alignment = AlignIO.read(muscle_cl.out, "clustal")
  
      if inputorder:
          try:
              muscle_inputorder(muscle_cl.input, muscle_cl.out)
          except ValueError:
              return ""
          alignment = AlignIO.read(muscle_cl.out, "fasta")
  
      print("\tDoing muscle alignment: %s" % muscle_cl, file=sys.stderr)
      if outfmt == "fasta":
          return alignment.format("fasta")
      if outfmt == "clustal":
          return alignment.format("clustal")
docs: Align given proteins with muscle.
      recs are iterable of Biopython SeqIO objects