group theory splicing systems and their applications computation discrete mathematics splicing pcr dna dna sequencing biotechnology graphs numbers