Restriction Enzymes

Restriction Enzymes are used in recombinant dna experiments to chop up DNA strands at specific locations.  These cut DNA at specific nucleotide sequences known as restriction sites.  They are found in bacteria and have evolved to provide a defense mechanism against invading viruses.

The sites are found by looking for a specific palindromic locations on the double stranded helix.  In this project we will read in a specific DNA strand and cut it into multiple pieces (substrings) determined by the HaeIII  restriction enzyme.  It traverses the DNA and searches for the sequence GGCC.  Note that GGCC is on one strand and CCGG is on the other strand.  These are palindromes.  Even though HaeIII actually cuts the double stranded helix in this project we will just simulate the process by cutting the single strand at between the GG and CC forming blunt ends.  You project is to read in the strand and send it to a function called HaeIII() (that you write).  HaeIII(dna) is to return a list of substrings that result from cutting the input strand dna into pieces.  Assume that it cut at every GGCC that occurs in the input dna strand.  Return the list in the order that the sections occur in the dna strand that is processed.  You are to print out the substrands together with their associated complementary strands where each pair is followed by a blank line.

Example strand:

“ACGAACATCTTTGGCCAACTAGACCTGGCCAACCTAGCGG”

Example output:

ACGAACATCTTTGG
TGCTTGTAGAAACC

CCAACTAGACCTGG
GGTTGATCTGGACC

CCAACCTAGCGG
GGTTGGATCGCC

This is a simple project that can be done using strings, lists together with the methods append, translate and find.   By the way.  What do you think the complexity of find is here? Look it up.

Comments are closed.