2016-06-08 42 views
0

爲了簡單起見,我粘貼了整個事情,但我們應該使用的測試用例是CAGTTTAGCTAGAAA,當我這樣做時,我得到一個錯誤,因爲它說的太長了,但是錯誤在哪裏,那隻能把它們分成3個,所以以後可以根據它們的組進行轉換。程序應該將DNA分成3個組,但是看起來序列太長

public class Soutar_bioinformatics 
    { 
     public static void main (String[] args) 
     { 
      //Variable declaration 
      int DNAstrandlength, DNAsplit; 
      String strandDNA; 
      Scanner DNAInfo = new Scanner (System.in); 
      //Welcome 
      System.out.println ("**********************************************"); 
      System.out.println ("Welcome to Matthew's Bioinformatics"); 
      System.out.println ("**********************************************"); 

      //Input 
      System.out.println ("Please enter a DNA Strand!"); 
      strandDNA = DNAInfo.next(); 
      DNAstrandlength = strandDNA.length(); 

      if (DNAstrandlength % 3 != 0) 
      { 
       System.out.println ("The DNA sequence enterered is not valid, please insert a correct sequence."); 
       strandDNA = DNAInfo.next(); 
      } 

      //Processing 
      ArrayList<String> DNAarray = DNAsplit(strandDNA); // Calls the DNA split method 

      //Goodbye 
      System.out.println ("**********************************************"); 
      System.out.println ("Thank you for using Matthew's Program"); 
      System.out.println ("**********************************************"); 

     } 
     private static ArrayList<String> DNAsplit (String text) 
     { 
      ArrayList<String> DNAsplit = new ArrayList <String>(); 

      for (int i = 0; 1 < text.length(); i += 3) 
      { 
       DNAsplit.add(text.substring(i, Math.min(i + 3, text.length()))); 
      } 

      String [] codonArray = DNAsplit.toArray (new String[DNAsplit.size()]); 
      System.out.print ("\f"); 
      System.out.println ("The Amino acids are: "); 

      for (int j = 0; j < codonArray.length; j = j + 1) 
      { 


      //First Column 
      codonArray[j] = codonArray[j].replace ("TTT", "F"); 
      codonArray[j] = codonArray[j].replace("TCT", "S"); 
      codonArray[j] = codonArray[j].replace("TAT", "Y"); 
      codonArray[j] = codonArray[j].replace("TGT","C"); 
      codonArray[j] = codonArray[j].replace("CTT", "L"); 
      codonArray[j] = codonArray[j].replace("CCT", "P"); 
      codonArray[j] = codonArray[j].replace("CAT", "H"); 
      codonArray[j] = codonArray[j].replace("CGT", "R"); 
      codonArray[j] = codonArray[j].replace("ATT" , "I"); 
      codonArray[j] = codonArray[j].replace("ACT", "T"); 
      codonArray[j] = codonArray[j].replace("AAT", "N"); 
      codonArray[j] = codonArray[j].replace("AGT", "S"); 
      codonArray[j] = codonArray[j].replace("GTT", "V"); 
      codonArray[j] = codonArray[j].replace("GCT" , "A"); 
      codonArray[j] = codonArray[j].replace("GAT" , "D"); 
      codonArray[j] = codonArray[j].replace("GGT", "G"); 
      codonArray[j] = codonArray[j].replace ("TTT", "F"); 
      //Second Column 
      codonArray[j] = codonArray[j].replace("TCT", "S"); 
      codonArray[j] = codonArray[j].replace("TAT", "Y"); 
      codonArray[j] = codonArray[j].replace("TGT", "C"); 
      codonArray[j] = codonArray[j].replace("CTT", "L"); 
      codonArray[j] = codonArray[j].replace("CCT", "P"); 
      codonArray[j] = codonArray[j].replace("CAT", "H"); 
      codonArray[j] = codonArray[j].replace("CGT", "R"); 
      codonArray[j] = codonArray[j].replace("ATT" , "I"); 
      codonArray[j] = codonArray[j].replace("ACT", "T"); 
      codonArray[j] = codonArray[j].replace("AAT", "N"); 
      codonArray[j] = codonArray[j].replace("AGT", "S"); 
      codonArray[j] = codonArray[j].replace("GTT", "V"); 
      codonArray[j] = codonArray[j].replace("GCT" ,"A"); 
      codonArray[j] = codonArray[j].replace("GAT" , "D"); 
      codonArray[j] = codonArray[j].replace("GGT", "G"); 
      //Third Coloumn 
      codonArray[j] = codonArray[j].replace ("TTA", "L"); 
      codonArray[j] = codonArray[j].replace ("TCA", "S"); 
      codonArray[j] = codonArray[j].replace ("TAA", "STOP"); 
      codonArray[j] = codonArray[j].replace ("TGA", "STOP"); 
      codonArray[j] = codonArray[j].replace ("CTA", "L"); 
      codonArray[j] = codonArray[j].replace ("CCA", "P"); 
      codonArray[j] = codonArray[j].replace ("CAA", "Q"); 
      codonArray[j] = codonArray[j].replace ("CGA", "R"); 
      codonArray[j] = codonArray[j].replace ("ATA", "I"); 
      codonArray[j] = codonArray[j].replace ("ACA", "T"); 
      codonArray[j] = codonArray[j].replace ("AAA", "K"); 
      codonArray[j] = codonArray[j].replace ("AGA", "R"); 
      codonArray[j] = codonArray[j].replace ("GTA", "V"); 
      codonArray[j] = codonArray[j].replace ("GCA", "A"); 
      codonArray[j] = codonArray[j].replace ("GAA", "E"); 
      codonArray[j] = codonArray[j].replace ("GGA", "E"); 
      //Fourth Column 
     codonArray[j] = codonArray[j].replace ("TTG", "L"); 
     codonArray[j] = codonArray[j].replace ("TCG", "S"); 
     codonArray[j] = codonArray[j].replace ("TAG", "STOP"); 
     codonArray[j] = codonArray[j].replace ("TGG", "W"); 
     codonArray[j] = codonArray[j].replace ("CTG", "L"); 
     codonArray[j] = codonArray[j].replace ("CCG", "P"); 
     codonArray[j] = codonArray[j].replace ("CAG", "Q"); 
     codonArray[j] = codonArray[j].replace ("CGG", "R"); 
     codonArray[j] = codonArray[j].replace ("ATG", "M"); 
     codonArray[j] = codonArray[j].replace ("ACG", "T"); 
     codonArray[j] = codonArray[j].replace ("AAG", "K"); 
     codonArray[j] = codonArray[j].replace ("AGG", "R"); 
     codonArray[j] = codonArray[j].replace ("GTG", "V"); 
     codonArray[j] = codonArray[j].replace ("GCG", "A"); 
     codonArray[j] = codonArray[j].replace ("GAG", "E"); 
     codonArray[j] = codonArray[j].replace ("GGG", "G"); 


     System.out.print (codonArray[j] + " "); 
     if (codonArray[j].contains ("STOP")) 
     { 
      break; 
     } 

    } 
    return DNAsplit; 
    } 
} 
+0

你能澄清你的意思嗎?「說得太久了」? – Aelexe

+0

是的,所以我的輸入與數組列表發生衝突,並且它看到DNA序列超過了3個字符,這是該組的結果,而不是將其分組停止程序 – Matthew

+0

您可以複製/粘貼實際錯誤,並指出哪一行(s)它的發生? –

回答

1

DNASplit函數中的代碼存在一個簡單的錯誤。

 for (int i = 0; 1 < text.length(); i += 3) 
     { 
      DNAsplit.add(text.substring(i, Math.min(i + 3, text.length()))); 
     } 

1 for for loop應該是i。