CSC 17 Assignment: DNA Sequence Alignment with Dynamic Programming Part II: Implementation and Testing You MUST implement BOTH the "simple" and "advanced" scoring schemes as described in the handout, and do it in a modular manner (such as using inheritance). I will NOT accept two different versions of the program, one for each scoring scheme. I will also be looking at your code, and it should follow the outline you've agreed upon, unless there was a significant problem no one could have forseen. To test your program, you need to: 1. Print out the alignment and alignment score, such as: CATTAATTACACTCTCGCACTCAC-CACCAAACATCCTA-AACCCAGACAGGCCTCGACTCC | ||| | | ||||| || | || | | || || | ||| | ||| | -ACTAAACA-AGACTCGC-CTGTCTAACTAGGGAGTTTATAATGAACCGTGGCGTAGAC-CA Alignment score is 27 (sample was produced using the advanced scoring scheme) 2. Use small, hand crafted examples, such as (but not limited to): AATCG ATCAG (checks if it figures out where to put the gaps) ********* For at least one example, you need to show how your program generated output that corresponds to what you have worked out on paper. You need to be able to print the matrix generated by your program, and show that it corresponds to what you have done by hand. ********* 3. Use large, randomly generated sequences. Test your program several times before declaring that "it works". Be sure to use examples where the lengths of the sequences are not the same. Here's a function that will generate a random sequence of length n public static String randseq(int n) { char[] S = new char[n]; // faster than building string char by char String DNA = "ACGT"; for(int i=0;i (int)'9' then the first argument is not numeric. ------ Here's a problem that have caused me trouble in the past: when dealing with a coordinate system, we usually think in terms of x, then y, or column then row (this is how the tutorial refers to the coordinates). But in the C/C++ (and Java) programming language, 2D arrays are stored in row-major order, and we typically give the row (y) coordinate first. Thus your program may behave in a way that's different from how you envision it. Be very careful, and consistent, with how you deal with array coordinates. ------ There is a flaw in the tutorial's "advanced scoring scheme" section. Find and correct it. Hint: during traceback, consider what happens when one of x,y gets to 0, but the other one does not.