For my Computer science class I am suppose input a file call

For my Computer science class I am suppose input a file called dna.txt which includes codons. And then create a output file that includes various things about the codons to see if it includes protons. I have gotten it create the output file with all the things needed. However, when I create the output file, it will not print the output file out in the console. What do I need to add to have the program print the output in the console?


import java.util.*;
import java.io.*;
import java.text.*;

public class DNAAA {

   public static final int MNC = 5; //the (M)inimun (N)umber of (C)odons a valid protein must have
   public static final double CG = 30.0; //the minimum percentage of mass from (C) and (G) nucleotides
   public static final int UN = 4; //minimum number of (U)nique (N)ucleotides
   public static final int NPC = 3; //the number of (N)ucleotides (P)er (C)odon

  
   //This main method is structured to first call methods which introduce the program and ask
   //for file names. Then, it uses a while loop to examine lines of DNA sequences. Finally,
   //it calls a test method to determine if the sequence is a valid protein or not, based on
   //constant values and a simple set of conditions.
   public static void main(String[] args) throws FileNotFoundException {
  
//introduces program and accepts inputs from the user to specify source and text
//output file names:
String inputText = input();
String outputText = output();

//creates scanner to read input file:
Scanner DNA = new Scanner(new File(inputText));

//creates PrintStream to print to output file:
PrintStream out = new PrintStream(new File(outputText));
  
//Scans the text file and takes advantage of alternating parity to differentiate name versus
//DNA sequences. Calls methods that calculate data of potential DNA sequences. Calls a test
//method to determine if the sequence is a protein or not:
while(DNA.hasNextLine()) {
   name(DNA.nextLine(), out); //prints the name of nucleotide sequence
   String sequenceDNA = sequence(DNA.nextLine(), out);
   int[] nuc_Count = nuc_Count(sequenceDNA, out);
   double[] percentages = masses(nuc_Count, out);
   String codonList = groupCodons(sequenceDNA, out);
   proteinTest(codonList, percentages, out);
}
   }
  
   //Prints a description of the program and invites user to name the input text file.
   //Returns the .txt file name as a String to main.
   public static String input() throws FileNotFoundException {
System.out.println(\"This program reports information about DNA\");
System.out.println(\"nucleotides sequences that may encode proteins.\");
System.out.print(\"Input file name? \");
Scanner input = new Scanner(System.in);
String text = (input.next());
return text;
   }
  
   //Invites the user to name the output text file to print into. Returns the .txt file name
   //as a String to main.
   public static String output() {
System.out.print(\"Output file name? \");
Scanner output = new Scanner(System.in);
String text = (output.next());
return text;
   }
  
   //Accpets next line as parameter and prints the name of the nucleotide region.
   public static void name(String name, PrintStream out) {
out.println(\"Region Name: \" + name);
   }
  
   //Accepts next line as parameter, prints nucleotide region in upper-case, and returns a new String.
   public static String sequence(String sequenceDNA, PrintStream out) {
sequenceDNA = sequenceDNA.toUpperCase();
out.println(\"Nucleotides: \" + sequenceDNA);
return sequenceDNA;
   }
  
   //Accepts String of nucleotides and Printstream as parameters, scans for and tallies each
   //nucleotide present, and returns an int array of the individual nucleotides.
   public static int[] nuc_Count(String sequenceDNA, PrintStream out) throws FileNotFoundException {
int[] counts = new int[UN + 1];
char[] codons = {\'A\', \'C\', \'G\', \'T\', \'-\'};
for(int i = 0; i < sequenceDNA.length(); i++) {
   char c = sequenceDNA.charAt(i);
   for(int j = 0; j < codons.length; j++) {
if(c == codons[j]) {
   counts[j]++;
}
   }
}
int[] counts_Short = Arrays.copyOf(counts, 4);
out.println(\"Nuc. Counts: \" + Arrays.toString(counts_Short));
return counts;
   }
  
   //Accepts the array of nucleotide counts, calculates the masses of each nucleotide, calculates the
   //total mass of the sequence, prints the percentage of mass for nucleotides, returns arry of
   //rounded percentages.
   public static double[] masses(int[] nuc_Count, PrintStream out) throws FileNotFoundException {
double[] masses_Constant = {135.128, 111.103, 151.128, 125.107, 100.000};
double[] masses_Nuc = new double[5];
double totalMass = 0;
for(int i = 0; i < 5; i++) {
   masses_Nuc[i] = nuc_Count[i] * masses_Constant[i];
   totalMass += masses_Nuc[i];
}

//calls method to convert array of masses into percentages and prints:
double[] percentages = convert_Percentage(masses_Nuc, totalMass);
double[] percentages2 = Arrays.copyOf(percentages, 4);
out.print(\"Total Mass%: \" + Arrays.toString(percentages2) + \" of \");
out.printf(\"%.1f\", totalMass);
out.println();
return percentages;
   }
  
   //Accepts the double array of nucleotide masses and converts it to a rounded percentage using the
   //total mass. Returns an array of type double.
   public static double[] convert_Percentage(double[] masses_Nuc, double totalMass) throws FileNotFoundException {
double[] percentages = new double[5];
for(int i = 0; i <=4; i++) {
   percentages[i] = Math.round((masses_Nuc[i] / totalMass * 100) * 10.0) / 10.0;
}
return percentages;
   }
  
   //Accepts DNA sequence and Prinstream as parameters and creates and prints an array of codons by
   //grouping nucleotides into chunks of codons using the constant nucleotide count. Returns a
   //String of the codons.
   public static String groupCodons(String sequenceDNA, PrintStream out) throws FileNotFoundException {
String sequenceDNA2 = sequenceDNA.replace(\"-\",\"\");
int length = sequenceDNA2.length() / NPC;
String[] codons = new String[length];
int j = 1;
for(int i = 0; i <= sequenceDNA2.length() - NPC; i = i + NPC) {
   String codon = sequenceDNA2.substring(i, NPC * j);
   codons[j - 1] = codon;
   j++;
}
String codonList = Arrays.toString(codons);
out.println(\"Codons List: \" + codonList);
return codonList;
   }
  
   //Calls four test methods to determine if the sequence is a valid protein and prints result.
   //Accepts a string of codons, the percentages array, and a printsream as parameters. Passes
   //list of codons and percentages array to test methods.
   public static void proteinTest(String codonList, double[] percentages, PrintStream out) {
   if (startTest(codonList) && stopTest(codonList) && mNCTest(codonList) && percentageTest(percentages)) {
out.println(\"Is Protein?: YES\");
} else {
   out.println(\"Is Protein?: NO\");
}
out.println();
   }
  
   //This method returns \"true\" if the first codon is a valid start codon (\"ATG\").
   //Accepts string list of codons as parameter.
   public static boolean startTest(String codonList) {
return(codonList.substring(1, 4).equals(\"ATG\"));
   }
  
   //This method returns \"true\" if the last codon is a valid stop codon. (\"TAA\", \"TAG\", or \"TGA\").
   //Accepts string list of codons as parameter.
   public static boolean stopTest(String codonList) {
String EndC = codonList.substring(codonList.length() - 4, codonList.length() - 1);
return (EndC.equals(\"TAA\") || EndC.equals(\"TAG\") || EndC.equals(\"TGA\"));
   }
  
   //This method returns \"true\" if there are 5 or more codons in the sequence. Does so by analyzing
   //the codon string to determine if a 5th data set exists. Accepts Str list of codons as parameter.
   public static boolean mNCTest(String codonList) {
return(codonList.charAt(19) == \',\');
   }
  
   //This method returns \"true\" if the combined mass percentages of nucleotide \"C\" and \"G\" are equal
   //to or greater than 30.0% of total mass. Accepts a double array of nucleotide mass percentages.
   public static boolean percentageTest(double[] percentages) {
return(percentages[1] + percentages[2] >= 30.0);
   }
}

Solution


import java.util.*;
import java.io.*;
import java.text.*;

public class DNAAA {

   public static final int MNC = 5; //the (M)inimun (N)umber of (C)odons a valid protein must have          
   public static final double CG = 30.0; //the minimum percentage of mass from (C) and (G) nucleotides      
   public static final int UN = 4; //minimum number of (U)nique (N)ucleotides          
   public static final int NPC = 3; //the number of (N)ucleotides (P)er (C)odon


   //This main method is structured to first call methods which introduce the program and ask
   //for file names. Then, it uses a while loop to examine lines of DNA sequences. Finally,
   //it calls a test method to determine if the sequence is a valid protein or not, based on
   //constant values and a simple set of conditions.
   public static void main(String[] args) throws FileNotFoundException {

      //introduces program and accepts inputs from the user to specify source and text
      //output file names:
      String inputText = input();
      String outputText = output();
   
      //creates scanner to read input file:
      Scanner DNA = new Scanner(new File(inputText));
   
      //creates PrintStream to print to output file:
      PrintStream out = new PrintStream(new File(outputText));
      
      //Scans the text file and takes advantage of alternating parity to differentiate name versus
      //DNA sequences. Calls methods that calculate data of potential DNA sequences. Calls a test
      //method to determine if the sequence is a protein or not:
      while(DNA.hasNextLine()) {
         name(DNA.nextLine(), out); //prints the name of nucleotide sequence
         String sequenceDNA = sequence(DNA.nextLine(), out);
         int[] nuc_Count = nuc_Count(sequenceDNA, out);
         double[] percentages = masses(nuc_Count, out);
         String codonList = groupCodons(sequenceDNA, out);
         proteinTest(codonList, percentages, out);
      }
   }

   //Prints a description of the program and invites user to name the input text file.
   //Returns the .txt file name as a String to main.
   public static String input() throws FileNotFoundException {
      System.out.println(\"This program reports information about DNA\");
      System.out.println(\"nucleotides sequences that may encode proteins.\");
      System.out.print(\"Input file name? \");
      Scanner input = new Scanner(System.in);
      String text = (input.next());
      return text;
   }

   //Invites the user to name the output text file to print into. Returns the .txt file name
   //as a String to main.
   public static String output() {
      System.out.print(\"Output file name? \");
      Scanner output = new Scanner(System.in);
      String text = (output.next());
      return text;
   }

   //Accpets next line as parameter and prints the name of the nucleotide region.
   public static void name(String name, PrintStream out) {
      out.println(\"Region Name: \" + name);
      // when print to file, print to the console as well
      System.out.println(\"Region Name: \" + name);

   }

   //Accepts next line as parameter, prints nucleotide region in upper-case, and returns a new String.
   public static String sequence(String sequenceDNA, PrintStream out) {
      sequenceDNA = sequenceDNA.toUpperCase();
      out.println(\"Nucleotides: \" + sequenceDNA);
      // when print to file, print to the console as well
      System.out.println(\"Nucleotides: \" + sequenceDNA);

      return sequenceDNA;
   }

   //Accepts String of nucleotides and Printstream as parameters, scans for and tallies each
   //nucleotide present, and returns an int array of the individual nucleotides.
   public static int[] nuc_Count(String sequenceDNA, PrintStream out) throws FileNotFoundException {
      int[] counts = new int[UN + 1];
      char[] codons = {\'A\', \'C\', \'G\', \'T\', \'-\'};
      for(int i = 0; i < sequenceDNA.length(); i++) {
         char c = sequenceDNA.charAt(i);
         for(int j = 0; j < codons.length; j++) {
            if(c == codons[j]) {
               counts[j]++;
            }
         }
      }
      int[] counts_Short = Arrays.copyOf(counts, 4);
      out.println(\"Nuc. Counts: \" + Arrays.toString(counts_Short));
     // when print to file, print to the console as well
      System.out.println(\"Nuc. Counts: \" + Arrays.toString(counts_Short));

      return counts;
   }

   //Accepts the array of nucleotide counts, calculates the masses of each nucleotide, calculates the
   //total mass of the sequence, prints the percentage of mass for nucleotides, returns arry of
   //rounded percentages.
   public static double[] masses(int[] nuc_Count, PrintStream out) throws FileNotFoundException {
      double[] masses_Constant = {135.128, 111.103, 151.128, 125.107, 100.000};
      double[] masses_Nuc = new double[5];
      double totalMass = 0;
      for(int i = 0; i < 5; i++) {
         masses_Nuc[i] = nuc_Count[i] * masses_Constant[i];
         totalMass += masses_Nuc[i];
      }  
   
      //calls method to convert array of masses into percentages and prints:
      double[] percentages = convert_Percentage(masses_Nuc, totalMass);
      double[] percentages2 = Arrays.copyOf(percentages, 4);
      out.print(\"Total Mass%: \" + Arrays.toString(percentages2) + \" of \");
      out.printf(\"%.1f\", totalMass);
      out.println();

       // when print to file, print to the console as well
      System.out.print(\"Total Mass%: \" + Arrays.toString(percentages2) + \" of \");
      System.out.printf(\"%.1f\", totalMass);
      System.out.println();

      return percentages;
   }

   //Accepts the double array of nucleotide masses and converts it to a rounded percentage using the
   //total mass. Returns an array of type double.
   public static double[] convert_Percentage(double[] masses_Nuc, double totalMass) throws FileNotFoundException {
      double[] percentages = new double[5];
      for(int i = 0; i <=4; i++) {
         percentages[i] = Math.round((masses_Nuc[i] / totalMass * 100) * 10.0) / 10.0;
      }
      return percentages;
   }

   //Accepts DNA sequence and Prinstream as parameters and creates and prints an array of codons by
   //grouping nucleotides into chunks of codons using the constant nucleotide count. Returns a
   //String of the codons.
   public static String groupCodons(String sequenceDNA, PrintStream out) throws FileNotFoundException {
      String sequenceDNA2 = sequenceDNA.replace(\"-\",\"\");
      int length = sequenceDNA2.length() / NPC;
      String[] codons = new String[length];
      int j = 1;
      for(int i = 0; i <= sequenceDNA2.length() - NPC; i = i + NPC) {
         String codon = sequenceDNA2.substring(i, NPC * j);
         codons[j - 1] = codon;
         j++;    
      }
      String codonList = Arrays.toString(codons);
      out.println(\"Codons List: \" + codonList);
      // when print to file, print to the console as well
      System.out.println(\"Codons List: \" + codonList);

      return codonList;
   }

   //Calls four test methods to determine if the sequence is a valid protein and prints result.
   //Accepts a string of codons, the percentages array, and a printsream as parameters. Passes
   //list of codons and percentages array to test methods.
   public static void proteinTest(String codonList, double[] percentages, PrintStream out) {
         if (startTest(codonList) && stopTest(codonList) && mNCTest(codonList) && percentageTest(percentages)) {
            out.println(\"Is Protein?: YES\");
            // when print to file, print to the console as well
            System.out.println(\"Is Protein?: YES\");

      } else {
         out.println(\"Is Protein?: NO\");
         // when print to file, print to the console as well
         System.out.println(\"Is Protein?: NO\");

      }
      out.println();
      // when print to file, print to the console as well
      System.out.println();

   }

   //This method returns \"true\" if the first codon is a valid start codon (\"ATG\").
   //Accepts string list of codons as parameter.
   public static boolean startTest(String codonList) {
      return(codonList.substring(1, 4).equals(\"ATG\"));
   }

   //This method returns \"true\" if the last codon is a valid stop codon. (\"TAA\", \"TAG\", or \"TGA\").
   //Accepts string list of codons as parameter.
   public static boolean stopTest(String codonList) {
      String EndC = codonList.substring(codonList.length() - 4, codonList.length() - 1);
      return (EndC.equals(\"TAA\") || EndC.equals(\"TAG\") || EndC.equals(\"TGA\"));
   }

   //This method returns \"true\" if there are 5 or more codons in the sequence. Does so by analyzing
   //the codon string to determine if a 5th data set exists. Accepts Str list of codons as parameter.
   public static boolean mNCTest(String codonList) {
      return(codonList.charAt(19) == \',\');
   }

   //This method returns \"true\" if the combined mass percentages of nucleotide \"C\" and \"G\" are equal
   //to or greater than 30.0% of total mass. Accepts a double array of nucleotide mass percentages.
   public static boolean percentageTest(double[] percentages) {
      return(percentages[1] + percentages[2] >= 30.0);
   }
}

For my Computer science class I am suppose input a file called dna.txt which includes codons. And then create a output file that includes various things about t
For my Computer science class I am suppose input a file called dna.txt which includes codons. And then create a output file that includes various things about t
For my Computer science class I am suppose input a file called dna.txt which includes codons. And then create a output file that includes various things about t
For my Computer science class I am suppose input a file called dna.txt which includes codons. And then create a output file that includes various things about t
For my Computer science class I am suppose input a file called dna.txt which includes codons. And then create a output file that includes various things about t
For my Computer science class I am suppose input a file called dna.txt which includes codons. And then create a output file that includes various things about t
For my Computer science class I am suppose input a file called dna.txt which includes codons. And then create a output file that includes various things about t

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site