func FindTypeIIS(sequence string, c chan DnaSuggestion, wg *sync.WaitGroup) {
	enzymeSites := []string{"GAAGAC", "GGTCTC", "GCGATG", "CGTCTC", "GCTCTTC", "CACCTGC"}
	var enzymes []string
	for _, enzyme := range enzymeSites {
		enzymes = []string{enzyme, ReverseComplement(enzyme)}
		for _, site := range enzymes {
			re := regexp.MustCompile(site)
			locs := re.FindAllStringIndex(sequence, -1)
			for _, loc := range locs {
				position := loc[0] / 3
				leftover := loc[0] % 3
				switch {
				case leftover == 0:
					c <- DnaSuggestion{position, (loc[1] / 3), "NA", 1, "TypeIIS removal", 0, 0}
				case leftover != 0:
					c <- DnaSuggestion{position, (loc[1] / 3) - 1, "NA", 1, "TypeIIS removal", 0, 0}
				}
			}
		}
	}
	wg.Done()
}
// FindTypeIIS is a problematicSequenceFunc used for finding TypeIIS restriction enzymes. It finds BbsI, BsaI, BtgZI, BsmBI, SapI, and PaqCI(AarI)
FindTypeIIS is a problematicSequenceFunc used for finding TypeIIS restriction enzymes. It finds BbsI, BsaI, BtgZI, BsmBI, SapI, and PaqCI(AarI)
// FindTypeIIS is a problematicSequenceFunc used for finding TypeIIS restriction enzymes . It finds BbsI BsaI BtgZI BsmBI SapI and PaqCI ( AarI )
func FindTypeIIS(sequence string, c chan DnaSuggestion, wg *sync.WaitGroup) {
	enzymeSites := []string{"GAAGAC", "GGTCTC", "GCGATG", "CGTCTC", "GCTCTTC", "CACCTGC"}
	var enzymes []string
	for _, enzyme := range enzymeSites {
		enzymes = []string{enzyme, ReverseComplement(enzyme)}
		for _, site := range enzymes {
			re := regexp.MustCompile(site)
			locs := re.FindAllStringIndex(sequence, -1)
			for _, loc := range locs {
				position := loc[0] / 3
				leftover := loc[0] % 3
				switch {
				case leftover == 0:
					c <- DnaSuggestion{position, (loc[1] / 3), "NA", 1, "TypeIIS removal", 0, 0}
				case leftover != 0:
					c <- DnaSuggestion{position, (loc[1] / 3) - 1, "NA", 1, "TypeIIS removal", 0, 0}
				}
			}
		}
	}
	wg.Done()
}
func FindTypeIIS ( sequence string , c chan DnaSuggestion , wg * sync . WaitGroup ) { enzymeSites := [ ] string { " " , " " , " " , " " , " " , " " } var enzymes [ ] string for _ , enzyme := range enzymeSites { enzymes = [ ] string { enzyme , ReverseComplement ( enzyme ) } for _ , site := range enzymes { re := regexp . MustCompile ( site ) locs := re . FindAllStringIndex ( sequence , - 1 ) for _ , loc := range locs { position := loc [ 0 ] / 3 leftover := loc [ 0 ] % 3 switch { case leftover == 0 : c <- DnaSuggestion { position , ( loc [ 1 ] / 3 ) , " " , 1 , " " , 0 , 0 } case leftover != 0 : c <- DnaSuggestion { position , ( loc [ 1 ] / 3 ) - 1 , " " , 1 , " " , 0 , 0 } } } } } wg . Done ( ) }
FindTypeIIS is a problematicSequenceFunc used for finding TypeIIS restriction enzymes.
FindTypeIIS is a problematicSequenceFunc used for finding TypeIIS restriction enzymes .