#!/usr/bin/env python
import argparse
import sys

parser = argparse.ArgumentParser(description="")
parser.add_argument("infile", nargs="?", help="input fasta file",  type=argparse.FileType('r'), default=sys.stdin)
parser.add_argument("outfile",nargs="?", help="output tab file", type=argparse.FileType('w'), default=sys.stdout)
parser.add_argument('-d', action="store_true", default=False)
args = parser.parse_args()

import glob
import os
import sys
import re
import matplotlib.pyplot as plt
from Bio import SeqIO

toFind = {"NheI":"GCTAGC", "EcoRI":"GAATTC", "HindIII":"AAGCTT", "XbaI":"TCTAGA", "ScaI":"AGTACT", "PstI":"CTGCAG", "BamHI":"GGATCC", "StuI":"AGGCCT", "SacII":"CCGCGG", "EcoRV":"GATATC", "MfeI":"CAATTG", "SalI":"GTCGAC"}
#toFind = {"BsmI":"GCATTC"}
recs = list(SeqIO.parse(args.infile, "fasta"))


def findMotif(seq, motif):
	rtn = []
	for i in range(len(seq)-len(motif)):
		toCheck = seq[i:(i+len(motif))]
		if(toCheck == motif):
			rtn.append(i)
	return(rtn)

def toOut(contig, idxs, key, motif):
	for idx in idxs:
		out = "{}\t{}\t{}\t{}\n".format(contig, idx, key, motif)
		args.outfile.write(out)


for rec in recs:
	for key in toFind:
		motif = toFind[key]
		seq = rec.seq
		idxs = findMotif(seq, motif)
		toOut(rec.name, idxs, key, motif)
















