intro to Computer science java/bluej problem using knowledge of DNA sequences: P
ID: 3787353 • Letter: I
Question
intro to Computer science java/bluej problem using knowledge of DNA sequences: Please only use the basics such as for loops, while loops, break, continue,switch,etc. if possible since I am sitll fairly new to computer science.
"Your program will first prompt the user to enter a single DNA sequence, which it should validate for legality (i.e., only the four valid bases) — you might do this validation by writing a function that takes a String as a parameter and returns a boolean. Re-prompt the user if the input was invalid. Once you have a valid input, compute the following statistics (each should be implemented as a separate function, called from main())."
1. Count the number of occurrences of “C”.
2. Determine the fraction of cytosine and guanine nucleotides. For example, if half of the nucleotides in the sequence are either “C” or “G”, the fraction should be 0.5.
3. A DNA strand is actually made up of pairs of bases — in effect, two strands that are crosslinked together. These two strands are complementary: if you know one, you can always determine the other, or complement, because each nucleotide only pairs up with one other. In particular, “A” and “T” are complements, as are “C” and “G”. So, for example, the complement of the sequence “AAGGTCT” would be “TTCCAGA”. Compute the complement of the input sequence.
The output should be something like this;
Sequence 1: AATCTATA
C-count 1
CG-ratio: 0.125
Complement: TTAGATAT
Sequence 2: AAGATA
C-count: 0
CG-ratio: 0.167
Complement: TTCTAT
Explanation / Answer
dna.java
import java.util.Scanner;
public class dna
{
public static boolean isvalid(String s)
{
for (int i = 0; i< s.length() ; i++)
{
if(s.charAt(i) != 'C' && s.charAt(i) != 'G' && s.charAt(i) != 'A' && s.charAt(i) != 'T' )
{
return false;
}
}
return true;
}
public static double countc(String s)
{
double c = 0;
for (int i = 0; i< s.length() ; i++)
{
if(s.charAt(i) == 'C' )
{
c = c+1;
}
}
return c;
}
public static double countcg(String s)
{
double c = 0;
for (int i = 0; i< s.length() ; i++)
{
if(s.charAt(i) == 'C' || s.charAt(i) == 'G' )
{
c = c+1;
}
}
return c;
}
public static void Complement(String s)
{
String comp = s;
for (int i = 0; i< s.length() ; i++)
{
if(s.charAt(i) == 'C')
{
System.out.print('G');
}
if(s.charAt(i) == 'G')
{
System.out.print('C');
}
if(s.charAt(i) == 'A')
{
System.out.print('T');
}
if(s.charAt(i) == 'T')
{
System.out.print('A');
}
}
System.out.println("");
}
public static void main(String[] args)
{
String DNA;
while(true)
{
Scanner scanner = new Scanner(System.in);
System.out.println("Enter DNA Sequence: ");
DNA = scanner.next();
if(isvalid(DNA))
{
System.out.println("C-count: " + countc(DNA));
System.out.println("CG-ratio: " + countcg(DNA)/DNA.length());
System.out.print("Complement: ");
Complement(DNA);
break;
}
else
{
System.out.println("Please enter Valid DNA Sequence!");
}
}
}
}
Sample Output:
Enter DNA Sequence:
AATCTATA
C-count: 1.0
CG-ratio: 0.125
Complement: TTAGATAT
akash@akash-SVE15116ENB:~/Desktop/chegg/DNA$ java dna
Enter DNA Sequence:
AAGATA
C-count: 0.0
CG-ratio: 0.16666666666666666
Complement: TTCTAT
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.