import re,sys
from Bio import SeqIO
def print_ReSites(id,seqence):
pattern=r"GATC"
seq_len=len(seqence)
sites = [str(m.start()) for m in re.finditer(pattern,seqence)]
sites.append(str(seq_len))
for start,end in zip(sites,sites[1:]):
print id+"\t"+start+"\t"+end
for seq in SeqIO.parse(sys.argv[1],"fasta"):
print_ReSites( str( seq.id),str(seq.seq))
Usage:
script.py in.fasta | bedtools getfasta -fi in.fasta -bed - -fo re_out.fasta
Example:
$ cat in.fasta
>1
AGAGGAGGATCGAGGAGGTGATCGAGGATTTTGAGAGGAGGATCGAGGAGGTGATCGAGGATTTTG
>2
GAGGGGGCTGGCGGCGGGATCGGAGGGGatttaggaGATCgaggattg
$ cat re_out.fasta
>1:7-19
GATCGAGGAGGT
>1:19-40
GATCGAGGATTTTGAGAGGAG
>1:40-52
GATCGAGGAGGT
>1:52-66
GATCGAGGATTTTG
>2:17-36
GATCGGAGGGGatttagga
>2:36-48
GATCgaggattg