#!/usr/bin/env python

from Bio import SeqIO
import argparse
import sys

parser = argparse.ArgumentParser(description="This script takes a genbank file and outputs a flat fasta file of all nucleotides.")

required = parser.add_argument_group('required arguments')

required.add_argument("-i", "--input_gb", help='input Genbank file (e.g. "*.gbk", "*.gb", "*.gbff")', action="store", dest="input_gb", required=True)
parser.add_argument("-o", "--output_fasta", help='Output fasta file with matching, simplified headers to be ready for `anvi-gen-contigs-db` (default: "clean.fa")', action="store", dest="output_fasta", default="clean.fa")

if len(sys.argv)==1:
  parser.print_help(sys.stderr)
  sys.exit(0)

args = parser.parse_args()

input_gb = open(args.input_gb, "r")

output_fasta = open(args.output_fasta, "w")

recs = [rec for rec in SeqIO.parse(input_gb, "genbank")]

for rec in recs:
  output_fasta.write(">" + rec.name  + "\n" + str(rec.seq) + "\n") # writing out new fasta with clean headers ready for anvi'o

input_gb.close()
output_fasta.close()
