def main():
'''
Back translate aligned amino acid sequences to nucleotide sequences while maintaining the alignment
'''
#creating a parser
parser = argparse.ArgumentParser(
formatter_class=argparse.RawDescriptionHelpFormatter,
description='Translate amino acid sequences into nucleotide sequences while maintaining the amino acid alignment and the order of sequences.')
#adding arguments
parser.add_argument('-a', metavar='<aa_aln.fasta>', type=str,
help='input amino acid alignment file')
parser.add_argument('-n', metavar='<nuc_aln.fasta>', type=str,
help='input unaligned/aligned nucleotide/codon sequence file')
parser.add_argument('-o', metavar='<codon_aln.fasta>', type=str,
help='output codon alignment file')
args = parser.parse_args()
#set up output file name if none is given
if args.o is None:
nuc_aln_file = "codon_aln.fasta"
else:
nuc_aln_file = args.o
aa_aln_file = args.a
nuc_seq_file = args.n
aa_aln = AlignIO.read(aa_aln_file, "fasta")
nuc_seq = open(nuc_seq_file) #read in codon file
codon_dict = SeqIO.to_dict(SeqIO.parse(nuc_seq, "fasta")) #read in codon sequence file as a dictionary, key=sequence ID, value=sequence itself
back_translate(aa_aln,codon_dict,nuc_aln_file,gencode)
评论列表
文章目录