package medusa.georgios.ClusteringAlgorithms;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
/*
 * List2Graph.java
 *
 * Created on October 9, 2007, 5:50 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

/**
 *
 * @author Georgios
 */
public class List2Graph {
    
    public static Hashtable GiveNodeName_GetIndex = new Hashtable();
    public static Hashtable GiveIndex_GetNodeName = new Hashtable();
    public static ArrayList  labels = new ArrayList();
    public static float A[][];
    public static double B[][];
    

       
    
    
    public List2Graph(String filename) {
   System.out.println("Reading labels");   
   read_labels(filename);
   System.out.println("Reading values");   
   read_values_f(filename);
  // print_labels();
   print_number_of_elements();
  // System.out.println("Saving to file matrix.txt");   
  // save_matrix_to_file_f("matrix.txt"); 
   System.out.println("File loaded");
    }
    
    public List2Graph(ArrayList list) {
     System.out.println("Reading labels");  
     read_labels(list);
     System.out.println("~~~~~~~~~~~~~~~"+this.labels.size());
     System.out.println("Reading values");   
     read_values_f(list);
     print_number_of_elements();
     System.out.println("File loaded");
    }

    
    public double[][] return_double_matrix()
    {
        B= new double[A.length][A.length];
        for (int i = 0; i < A.length; i++) {
            for (int j = 0; j < A.length; j++) {
                B[i][j]=(double)A[i][j];
            }
        }
        return B;
    }
    
     public void print_matrix_f()
     {
         for (int i = 0; i < A.length; i++) {
             for (int j = 0; j < A.length; j++) {
                 System.out.print(A[i][j]+"  ");
             }System.out.println("");
         }
     }
     

     
     
        public void save_matrix_to_file_f(String filename) { 
            try {
                BufferedWriter outp = new BufferedWriter(new FileWriter(filename));
                for(int i=0;i list)
    {
         String thisLine=null;
         A=new float[labels.size()][labels.size()];
         for (int i = 0; i < A.length; i++) {
             for (int j = 0; j < A.length; j++) {
                 A[i][j]=0;
             }
         }
         try{     
             for (int i = 0; i < list.size(); i++) {
              String str[] = list.get(i).split("\t");
              float value=Float.parseFloat(str[2]);
              A[GiveNodeName_GetIndex.get(str[0])][GiveNodeName_GetIndex.get(str[1])]=value;
              A[GiveNodeName_GetIndex.get(str[1])][GiveNodeName_GetIndex.get(str[0])]=value;
          }
          }//try
         catch (Exception e) {
         e.printStackTrace();}
    }
            

     
     public void print_number_of_elements()
     {
         System.out.println(labels.size());
     }
     
     
     public void print_labels()
     {
         for (int i = 0; i < labels.size(); i++) {
             System.out.println(labels.get(i));
         }
     }
    
    

    
       public static void removeDuplicateWithOrder(ArrayList arlList)
       {
       Set set = new HashSet();
       List newList = new ArrayList();
       for (Iterator iter = arlList.iterator();    iter.hasNext(); ) {
       Object element = iter.next();
         if (set.add(element))
            newList.add(element);
          }
          arlList.clear();
          arlList.addAll(newList);
      }
       
    public void read_labels(String filename)
    { String thisLine=null;
      int count_labels=0;
         try{     
          FileInputStream fin =  new FileInputStream(filename); 
          BufferedReader myInput = new BufferedReader (new InputStreamReader(fin));
          while ((thisLine = myInput.readLine()) != null) { 
              String str[] = thisLine.split("\t");
              labels.add(str[0]);
              labels.add(str[1]);
          }
          removeDuplicateWithOrder(labels);
              
          for (int i = 0; i < labels.size(); i++) {
               GiveNodeName_GetIndex.put(labels.get(i),i);
               GiveIndex_GetNodeName.put(i,labels.get(i));
              
          }
  
          
          }//try
         catch (Exception e) {
         e.printStackTrace();}
    }
    
    
     public void read_labels(ArrayList list)
    { String thisLine=null;
      int count_labels=0;
      labels.clear();
         try{     
             for (int i = 0; i < list.size(); i++) {
              String str[] = list.get(i).split("\t");
              labels.add(str[0]);
              labels.add(str[1]);
          }
          removeDuplicateWithOrder(labels);
              
          for (int i = 0; i < labels.size(); i++) {
               GiveNodeName_GetIndex.put(labels.get(i),i);
               GiveIndex_GetNodeName.put(i,labels.get(i));
              
          }
  
          
          }//try
         catch (Exception e) {
         e.printStackTrace();}
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
      List2Graph m = new List2Graph("C:\\Documents and Settings\\Georgios\\Desktop\\Mitocheck Analysis\\mitocheck_draft_peptide_all_vs_all_distance_matrix.txt");
    }
    
}

 

Ads help maintain this website.