Logo 
Search:

Java Articles

Submit Article
Home » Articles » Java » Homework HelpRSS Feeds

Biological Sequence Allignment Using Dynamic Programing

Posted By: Falak Khan     Category: Java     Views: 19325

Code for Biological Sequence Allignment Using Dynamic Programing in Java

/* * To change this template, choose Tools | Templates * and open the template in the editor. */
package dynamic_prog;
import java.util.Scanner;
import java.io.*;
import java.io.FileReader;
import java.nio.file.Files;
import java.util.*;
import java.lang.String;
import java.nio.charset.Charset;
import java.nio.file.*;
import java.util.Collections;
import java.lang.Exception;
/** * * @author Hira */publicclass Dynamic_Prog {
    
   // Path p=Paths.get("seq.txt");//Charset charset = Charset.forName("US-ASCII");// BufferedReader reader = Files.newBufferedReader(p, charset)) {//  String line = null;// while ((line = reader.readLine()) != null) {//   System.out.println(line);// }privatestatic String a=" GGATCGA";
    privatestatic String b=" GAATTCAGTTA";
    privatestatic List<String>trace=new ArrayList<String>();
    privatestatic String na,nb;
    privatestaticint[][] arr = newint[a.length()][b.length()];
    privatestaticint match,mismatch,gap;
    /**     * @param args the command line arguments     */publicstaticvoid main(String[] args) {
     
    System.out.print(a.charAt(0));
       Scanner in=new Scanner(System.in);
       System.out.println("set scores:");
       System.out.println("Enter score for match:");
       match=in.nextInt();
       System.out.println("Enter score for mismatch(-ive value):");
       mismatch=in.nextInt();
       System.out.println("Enter gap penalty"); 
       gap=in.nextInt();
       
        System.out.println(a);
       
       for(int i=0, j=0;j<b.length();j++)
           arr[i][j]=j*gap;
       
     
       
       for (int i=1,j=0;i<a.length();i++)
           arr[i][j]=gap*i;
     
      
       for (int i=0;i<a.length();i++){
          for(int j=0;j<b.length();j++)
               System.out.print(arr[i][j]+" ");
          System.out.println();
       }
           
       for (int i=1;i<a.length();i++)
           for(int j=1;j<b.length();j++)
                arr[i][j]=max(i,j);
       System.out.println("trace list");
       System.out.println(trace);
       // for (int i=0;i<a.length();i++){// for(int j=0;j<b.length();j++)// System.out.print(arr[i][j]+" ");// System.out.println();
           
       
               traceback();
               
    
    }
    
   publicstaticint max(int i,int j){
       int x,y,z;
       String p,o,t; 
       List<Integer>l=new ArrayList<Integer>();
    //   List<Integer>index=new ArrayList<Integer>();if(a.charAt(i)==b.charAt(j)){
                            x=arr[i-1][j-1]+match;
                            l.add(x);
                            p=i-1+":"+(j-1)+"";
                            
                      }
                      else{
                             x=arr[i-1][j-1]+mismatch;
                             l.add(x);
                             p=i-1+":"+(j-1)+"";
                          }
                     y=arr[i][j-1]+gap;
                     l.add(y);
                     o=i+":"+(j-1)+"";
                     z=arr[i-1][j]+gap;
                     l.add(z);
                     t=i-1+":"+(j)+"";
                     int max=Collections.max(l);    
                    // System.out.println(l);// System.out.println(max);if(max==y)
                     {
                         //trace.add(o);
                         trace.add("h");
                         String n=max+"";
                        // trace.add(n);
                     }
                     elseif(max==z)
                     {
                        ////trace.add(t);
                        trace.add("v");
                        String n=max+"";
                        // trace.add(n);
                     }
                             
                     else{
                      // trace.add(p);
                       trace.add("d"); 
                       String n=max+"";
                       // trace.add(n);
                     }       
                trace.toString();
                
       return max;
           }
   
    publicstaticvoid traceback(){
        
         List<String>x=new ArrayList<String>();
         List<String>y=new ArrayList<String>();
         a=a.trim();
         b=b.trim();
      //   Collections.reverse(a);//Collections.reverse(b);    
         System.out.println(a);
         int i=a.length()-1;
         int j=b.length()-1;
        // List<String>a1=new ArrayList<String>();// List<String>b1=new ArrayList<String>();
          System.out.println(i);
           System.out.println(j);
           String h;
           String   c;
           char t,r;
        //for(int i=l;i>=l;){// for(int j=k;j>=k;){//do{for(int w=trace.size()-1;w>=0;)
               {
                 // if(trace.get(w)=="h")
                   {
                        x.add("_");                       
                        //trace.remove(w);// a=a.substring(0, i);
                       c= b.charAt(j)+"";
                        y.add(c);
                        j--; 
                        w--;
                       // break;
               }
                  elseif(trace.get(w)=="v"){
                      y.add("_");
                      //trace.remove(w);
                       h=a.charAt(i)+"";
                       x.add(h);
                       i--;
                       w=w-b.length();
                      //a=a.substring(0, i);// b=b.substring(0, j); // break;
                  } 
                  elseif(trace.get(w)=="d")
                  {
                     // try{
                      
                      t=a.charAt(i);
                      h=t+"";
                      x.add(h);
                       c=b.charAt(j)+"";
                     y.add(c); 
                     // trace.remove(w);//a=a.substring(0, i);// b=b.substring(0, j); 
                      j--;
                      i--;
                      w=w-(b.length()-1);
                     // break;//  }catch(Exception e)// {//System.err.println("caught exception");// }
                  }
                     // else//{// }
        }
       // }//while(i>-1||j>-1);
         

       Collections.reverse(x);
       Collections.reverse(y);        
       // String f=x.toString();// String o=y+"";
       
       System.out.println("X"); 
       System.out.println(x);
       System.out.println("y list");
       System.out.println(y);
       System.out.println(a);
    }
}


   
        
      
           
         
           
           
             
    


  
Share: 


Didn't find what you were looking for? Find more on Biological Sequence Allignment Using Dynamic Programing Or get search suggestion and latest updates.

Falak Khan
Falak Khan author of Biological Sequence Allignment Using Dynamic Programing is from Pakistan.
 
View All Articles

Related Articles and Code:


 
Please enter your Comment

  • Comment should be atleast 30 Characters.
  • Please put code inside [Code] your code [/Code].

 
No Comment Found, Be the First to post comment!