mev-4.0.01/source/org/tigr/microarray/mev/cgh/CGHAlgorithms/NumberOfAlterations/GeneAlterations/LoadGeneList.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2  * LoadGeneList.java
2 26 Feb 07 jari 3  *
2 26 Feb 07 jari 4  * Created on June 15, 2003, 4:31 AM
2 26 Feb 07 jari 5  */
2 26 Feb 07 jari 6
2 26 Feb 07 jari 7 package org.tigr.microarray.mev.cgh.CGHAlgorithms.NumberOfAlterations.GeneAlterations;
2 26 Feb 07 jari 8
2 26 Feb 07 jari 9 import java.io.BufferedReader;
2 26 Feb 07 jari 10 import java.io.File;
2 26 Feb 07 jari 11 import java.io.FileReader;
2 26 Feb 07 jari 12 import java.io.IOException;
2 26 Feb 07 jari 13 import java.util.Vector;
2 26 Feb 07 jari 14
2 26 Feb 07 jari 15 import javax.swing.JFileChooser;
2 26 Feb 07 jari 16 import javax.swing.tree.DefaultMutableTreeNode;
2 26 Feb 07 jari 17
2 26 Feb 07 jari 18 import org.tigr.microarray.mev.cgh.CGHAlgorithms.NumberOfAlterations.NumberOfAlterationsCalculator;
2 26 Feb 07 jari 19 import org.tigr.microarray.mev.cgh.CGHDataObj.GeneDataSet;
2 26 Feb 07 jari 20 import org.tigr.microarray.mev.cluster.algorithm.AlgorithmException;
2 26 Feb 07 jari 21 import org.tigr.microarray.mev.cluster.gui.ICGHCloneValueMenu;
2 26 Feb 07 jari 22 import org.tigr.microarray.mev.cluster.gui.IFramework;
2 26 Feb 07 jari 23 /**
2 26 Feb 07 jari 24  *
2 26 Feb 07 jari 25  * @author  Adam Margolin
2 26 Feb 07 jari 26  * @author Raktim Sinha
2 26 Feb 07 jari 27  */
2 26 Feb 07 jari 28
2 26 Feb 07 jari 29 public class LoadGeneList extends NumberOfAlterationsCalculator{
2 26 Feb 07 jari 30
2 26 Feb 07 jari 31     /** Creates a new instance of LoadGeneList */
2 26 Feb 07 jari 32     public LoadGeneList() {
2 26 Feb 07 jari 33
2 26 Feb 07 jari 34     }
2 26 Feb 07 jari 35
2 26 Feb 07 jari 36     public DefaultMutableTreeNode execute(IFramework framework) throws AlgorithmException {
2 26 Feb 07 jari 37         this.framework = framework;
2 26 Feb 07 jari 38         this.data = framework.getData();
2 26 Feb 07 jari 39         JFileChooser chooser = new JFileChooser(System.getProperty("user.dir") + "/data");
2 26 Feb 07 jari 40         chooser.setMultiSelectionEnabled(true);
2 26 Feb 07 jari 41         int returnVal = chooser.showOpenDialog(framework.getFrame());
2 26 Feb 07 jari 42         if(returnVal == JFileChooser.APPROVE_OPTION){
2 26 Feb 07 jari 43             return loadGeneList(chooser.getSelectedFile(), data.getCGHSpecies());
2 26 Feb 07 jari 44         }else{
2 26 Feb 07 jari 45             return null;
2 26 Feb 07 jari 46         }
2 26 Feb 07 jari 47     }
2 26 Feb 07 jari 48     
2 26 Feb 07 jari 49     /**
2 26 Feb 07 jari 50      * Raktim 4/27
2 26 Feb 07 jari 51      * Added to make State Saving Work
2 26 Feb 07 jari 52      * @param framework
2 26 Feb 07 jari 53      * @param file
2 26 Feb 07 jari 54      * @return
2 26 Feb 07 jari 55      * @throws AlgorithmException
2 26 Feb 07 jari 56      */
2 26 Feb 07 jari 57     public DefaultMutableTreeNode execute(IFramework framework, File file) throws AlgorithmException {
2 26 Feb 07 jari 58         this.framework = framework;
2 26 Feb 07 jari 59         this.data = framework.getData();
2 26 Feb 07 jari 60         
2 26 Feb 07 jari 61         if(file != null){
2 26 Feb 07 jari 62             return loadGeneList(file, data.getCGHSpecies());
2 26 Feb 07 jari 63         }else{
2 26 Feb 07 jari 64             return null;
2 26 Feb 07 jari 65         }
2 26 Feb 07 jari 66     }
2 26 Feb 07 jari 67
2 26 Feb 07 jari 68     public DefaultMutableTreeNode loadGeneList(File file, int species){
2 26 Feb 07 jari 69         Vector vecGeneData = null;
2 26 Feb 07 jari 70         try{
2 26 Feb 07 jari 71             BufferedReader reader = new BufferedReader(new FileReader(file));
2 26 Feb 07 jari 72             String line;
2 26 Feb 07 jari 73             Vector geneNames = new Vector();
2 26 Feb 07 jari 74             while((line = reader.readLine()) != null){
2 26 Feb 07 jari 75                 geneNames.add(line.trim());
2 26 Feb 07 jari 76             }
2 26 Feb 07 jari 77
2 26 Feb 07 jari 78             GeneDataSet geneDataSet = new GeneDataSet();
2 26 Feb 07 jari 79             geneDataSet.loadGeneDataByGeneNames(geneNames, species);
2 26 Feb 07 jari 80             vecGeneData = geneDataSet.getGeneData();
2 26 Feb 07 jari 81         }catch (IOException e){
2 26 Feb 07 jari 82             e.printStackTrace();
2 26 Feb 07 jari 83         }
2 26 Feb 07 jari 84
2 26 Feb 07 jari 85         try{
2 26 Feb 07 jari 86             DefaultMutableTreeNode root = new DefaultMutableTreeNode("GeneAlterations");
2 26 Feb 07 jari 87             GeneAlterations alts = new GeneAmplifications();
2 26 Feb 07 jari 88             alts.setVecGeneData(vecGeneData);
2 26 Feb 07 jari 89             alts.setData(this.data);
2 26 Feb 07 jari 90             alts.setAddGenInfo(false);
2 26 Feb 07 jari 91             root.add(alts.execute(framework));
2 26 Feb 07 jari 92
2 26 Feb 07 jari 93             alts = new GeneDeletions();
2 26 Feb 07 jari 94             alts.setVecGeneData(vecGeneData);
2 26 Feb 07 jari 95             alts.setData(this.data);
2 26 Feb 07 jari 96             alts.setAddGenInfo(false);
2 26 Feb 07 jari 97             root.add(alts.execute(framework));
2 26 Feb 07 jari 98
2 26 Feb 07 jari 99             addGeneralInfo(root, file.getAbsolutePath());
2 26 Feb 07 jari 100             return root;
2 26 Feb 07 jari 101         }catch (Exception e){
2 26 Feb 07 jari 102             e.printStackTrace();
2 26 Feb 07 jari 103             return null;
2 26 Feb 07 jari 104         }
2 26 Feb 07 jari 105     }
2 26 Feb 07 jari 106
2 26 Feb 07 jari 107     /**
2 26 Feb 07 jari 108      * Raktim 4/27
2 26 Feb 07 jari 109      * Added for State Saving to capture the File used for LoadGeneList
2 26 Feb 07 jari 110      * @param root
2 26 Feb 07 jari 111      * @param file
2 26 Feb 07 jari 112      */
2 26 Feb 07 jari 113     private void addGeneralInfo(DefaultMutableTreeNode root, String path) {
2 26 Feb 07 jari 114       ICGHCloneValueMenu menu = framework.getCghCloneValueMenu();
2 26 Feb 07 jari 115       DefaultMutableTreeNode node = new DefaultMutableTreeNode("General Information");
2 26 Feb 07 jari 116         node.add(new DefaultMutableTreeNode("Amplification Threshold: " + menu.getAmpThresh()));
2 26 Feb 07 jari 117         node.add(new DefaultMutableTreeNode("Deletion Threshold: " + menu.getDelThresh()));
2 26 Feb 07 jari 118         node.add(new DefaultMutableTreeNode("Amplification 2 Copy Threshold: " + menu.getAmpThresh2Copy()));
2 26 Feb 07 jari 119         node.add(new DefaultMutableTreeNode("Deletion 2 Copy Threshold: " + menu.getDelThresh2Copy()));
2 26 Feb 07 jari 120         node.add(new DefaultMutableTreeNode("File: " + path));
2 26 Feb 07 jari 121         root.add(node);
2 26 Feb 07 jari 122     }
2 26 Feb 07 jari 123 }