$29
Program Requirements
In this assignment you will create a double-strand DNA pattern checking and correcting application. Information about the basics of DNA can be found at:
http://ghr.nlm.nih.gov/handbook/basics/dna
In particular, the step-by-step procedure (i.e. algorithm) for this assignment is:
Prompt the user to enter a upper DNA strand
Read-in the string value entered by the user
Prompt the user to enter a lower DNA strand
Read-in the string value entered by the user
If the entered lower stand or upper strand is empty (i.e. contain no chemical bases) GOTO step 13, else GOTO step 6.
If the entered lower and upper strands have the same number of chemical bases GOTO step 7, else GOTO step 12
If the entered lower and upper strands only contain combinations of adenine (A), guanine (G), cytosine (C), and thymine (T) chemical bases then GOTO step 8, else GOTO step 11
If the upper and lower strands only define valid base-pairs (i.e. A paired with T, and C paired with G) then GOTO step 9, else GOTO step 10
Display to the user:
“The entered double-strand DNA pattern is correct … Exiting program”.
Fix the base-pair errors (your choice to fix error in upper or lower strand) and display to the user:
“The entered double-strand DNA pattern had base-pair errors that have been corrected: ”,
The fixed upper strand in upper case with chemical base correction(s) in lower case,
The fixed lower strand in upper case with chemical base correction(s) in lower case, and
“… Exiting program”
Display to the user “The entered upper and lower stands must only contain combinations of A, G, C, or T … Exiting program”.
Display to the user “The entered upper and lower strands do not have the same number of chemical bases … Exiting program”.
Display to the user “The entered upper strand or lower strand is not defined … Exiting program”.
Four different sample input and output scenarios are provided that demonstrate the above algorithm.
Enter upper DNA strand: AATCGGCA
Enter lower DNA strand: TTAGCCG
The entered upper and lower strands do not have the same number of chemical bases … Exiting program
Enter upper DNA strand: AATCGGCB
Enter lower DNA strand: TTAGCCGT
The entered upper and lower stands must only contain combinations of A, G, C, or T … Exiting program
Enter upper DNA strand: AATCAGCA
Enter lower DNA strand: TCAGCCGT
The entered double-strand DNA pattern had base-pair errors that have been corrected: AATCgGCA TtAGCCGT
… Exiting program
Enter upper DNA strand: AATCGGCA
Enter lower DNA strand: TTAGCCGT
The entered double-strand DNA pattern is correct … Exiting program
Program Design and Specification
Only one class named DNA and contains a main method (no other methods are needed). Your entire solution must be implemented in the main method.
The DNA class must in a package named edu.cofc.csci230.
To receive full credit, the completed program must fully implement the provided algorithm.
Exception handling should not be included in this assignment.
Hint: Use the methods (e.g., charAt(), length(), isEmpty()) in the String class.
Program Submission
Create a ZIP file that only contains the DNA.java file. For the ZIP file you must use the naming convention:
<lastname.zip
e.g., Munsell.zip
If the assignment is not submitted in the correct format – it will not be accepted – no exceptions! Submit the ZIP file via OAKS in the Dropbox that corresponds to the assignment. Resubmit as many times as you like, the newest submission will be the graded submission.
Grading Rubric
20 Points
Style: Comments and Indentation
80 Points
Functionality:
•
Program compiles (10)
•
•
Program runs (10)
For given inputs, program produces
correct output (60)
If the submitted program does not compile: 0 of 80 points
If the submitted program compiles but does not run: 10 of 80 points
If the submitted program compiles and runs: 20 of 80 points
If the submitted program compiles, runs, and produces correct output: 80 of 80 points
The correctness of your program will be evaluated using test cases developed by the instructor.
Late assignments will not be accepted – no exceptions (please do not email me your assignment after the due date, I will not accept it).
Please feel free to setup an appointment to discuss the assigned problem. I’ll be more than happy to listen to your approach and make suggestions. However, I cannot tell you how to code the solution. Furthermore, code debugging is your job.