mev-4.0.01/source/org/tigr/microarray/mev/cgh/CGHDataObj/GeneDataSet.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2  * GeneDataSet.java
2 26 Feb 07 jari 3  *
2 26 Feb 07 jari 4  * Created on December 27, 2002, 3:02 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.CGHDataObj;
2 26 Feb 07 jari 8
2 26 Feb 07 jari 9 import java.sql.ResultSet;
2 26 Feb 07 jari 10 import java.util.Hashtable;
2 26 Feb 07 jari 11 import java.util.Iterator;
2 26 Feb 07 jari 12 import java.util.Vector;
2 26 Feb 07 jari 13
2 26 Feb 07 jari 14 import org.tigr.microarray.mev.TMEV;
2 26 Feb 07 jari 15 import org.tigr.microarray.mev.cgh.CGHUtil.CGHUtility;
2 26 Feb 07 jari 16 import org.tigr.microarray.mev.cgh.DBObj.DSqlHandler;
2 26 Feb 07 jari 17
2 26 Feb 07 jari 18 /**
2 26 Feb 07 jari 19  * @author  Adam Margolin
2 26 Feb 07 jari 20  * @author Raktim Sinha
2 26 Feb 07 jari 21  */
2 26 Feb 07 jari 22
2 26 Feb 07 jari 23 public class GeneDataSet implements IGeneDataSet {
2 26 Feb 07 jari 24     private Vector geneData;
2 26 Feb 07 jari 25     /** Creates a new instance of GeneDataSet */
2 26 Feb 07 jari 26     public GeneDataSet() {
2 26 Feb 07 jari 27     }
2 26 Feb 07 jari 28
2 26 Feb 07 jari 29     public void loadGeneDataByGeneName(String geneName, int species){
2 26 Feb 07 jari 30         String db = getDBName(species);
2 26 Feb 07 jari 31         String sql = "SELECT chrom, txStart, txEnd, name, locusLinkId FROM \""+db+"\"" +
2 26 Feb 07 jari 32         " GROUP BY chrom, txStart, txEnd, name, locusLinkId HAVING UPPER(name)= " + CGHUtility.encap(geneName.toUpperCase());
2 26 Feb 07 jari 33
2 26 Feb 07 jari 34         System.out.println(sql);
2 26 Feb 07 jari 35
2 26 Feb 07 jari 36         loadGenes(sql, species);
2 26 Feb 07 jari 37     }
2 26 Feb 07 jari 38
2 26 Feb 07 jari 39     public void loadGeneDataByGeneNames(Vector geneNames, int species){
2 26 Feb 07 jari 40       String db = getDBName(species);
2 26 Feb 07 jari 41         String strGeneNames = "";
2 26 Feb 07 jari 42         Iterator it = geneNames.iterator();
2 26 Feb 07 jari 43
2 26 Feb 07 jari 44         if(it.hasNext()){
2 26 Feb 07 jari 45             strGeneNames += CGHUtility.encap( ((String) it.next()).toUpperCase() );
2 26 Feb 07 jari 46         }
2 26 Feb 07 jari 47
2 26 Feb 07 jari 48         while(it.hasNext()){
2 26 Feb 07 jari 49             strGeneNames += ", " + CGHUtility.encap( ((String) it.next()).toUpperCase() );
2 26 Feb 07 jari 50         }
2 26 Feb 07 jari 51
2 26 Feb 07 jari 52         String sql = "SELECT chrom, txStart, txEnd, name, locusLinkId FROM \""+db+"\"" +
2 26 Feb 07 jari 53         " GROUP BY chrom, txStart, txEnd, name, locusLinkId HAVING UPPER(name) IN (" + strGeneNames + ")";
2 26 Feb 07 jari 54
2 26 Feb 07 jari 55         System.out.println(sql);
2 26 Feb 07 jari 56
2 26 Feb 07 jari 57         loadGenes(sql, species);
2 26 Feb 07 jari 58     }
2 26 Feb 07 jari 59
2 26 Feb 07 jari 60     public void loadAllGenes(int species){
2 26 Feb 07 jari 61       String db = getDBName(species);
2 26 Feb 07 jari 62         String sql = "select chrom, txStart, txEnd, name, locusLinkId from \""+db+"\"" +
2 26 Feb 07 jari 63         " GROUP BY chrom, txStart, txEnd, name, locusLinkId";
2 26 Feb 07 jari 64
2 26 Feb 07 jari 65         System.out.println(sql);
2 26 Feb 07 jari 66
2 26 Feb 07 jari 67         loadGenes(sql, species);
2 26 Feb 07 jari 68     }
2 26 Feb 07 jari 69
2 26 Feb 07 jari 70     private String getDBName(int species){
2 26 Feb 07 jari 71       String dbName = "";
2 26 Feb 07 jari 72       switch(species) {
2 26 Feb 07 jari 73       case TMEV.CGH_SPECIES_HS:
2 26 Feb 07 jari 74         dbName = "Hs_RefGenesMapped";
2 26 Feb 07 jari 75         break;
2 26 Feb 07 jari 76       case TMEV.CGH_SPECIES_MM:
2 26 Feb 07 jari 77         dbName = "Mm_RefGenesMapped";
2 26 Feb 07 jari 78         break;
2 26 Feb 07 jari 79       }
2 26 Feb 07 jari 80       return dbName;
2 26 Feb 07 jari 81     }
2 26 Feb 07 jari 82
2 26 Feb 07 jari 83     private void loadGenes(String sql, int species){
2 26 Feb 07 jari 84         Hashtable uniqueGenes = new Hashtable();
2 26 Feb 07 jari 85         this.geneData = new Vector();
2 26 Feb 07 jari 86         DSqlHandler objPersist = new DSqlHandler();
2 26 Feb 07 jari 87
2 26 Feb 07 jari 88         //ResultSet rs = objPersist.fetchItemsOracle(sql);
2 26 Feb 07 jari 89         ResultSet rs = objPersist.fetchItemsCSV(sql);
2 26 Feb 07 jari 90         RefGeneLinkData curGeneData = null;
2 26 Feb 07 jari 91         try{
2 26 Feb 07 jari 92             while(rs.next()){
2 26 Feb 07 jari 93                 int chromosome = CGHUtility.convertStringToChrom(rs.getString("chrom"), species);
2 26 Feb 07 jari 94                 //int start = rs.getInt("txStart");
2 26 Feb 07 jari 95                 //int stop = rs.getInt("txEnd");
2 26 Feb 07 jari 96                 String geneName = rs.getString("name");
2 26 Feb 07 jari 97
2 26 Feb 07 jari 98                 if(chromosome != CGHClone.NOT_FOUND && geneName != null){
2 26 Feb 07 jari 99                     IGeneData testGeneData = (IGeneData)uniqueGenes.get(geneName);
2 26 Feb 07 jari 100                     //if(testGeneData == null || (testGeneData.getChromosomeIndex() + 1) != CGHUtility.convertStringToChrom(rs.getString("chrom")) ||
2 26 Feb 07 jari 101                     //testGeneData.getStart() < start - 300 || testGeneData.getStop() > stop + 300){
2 26 Feb 07 jari 102                     if(testGeneData == null) {
2 26 Feb 07 jari 103                         curGeneData = new RefGeneLinkData();
2 26 Feb 07 jari 104                         curGeneData.populate(rs, species);
2 26 Feb 07 jari 105                         geneData.add(curGeneData);
2 26 Feb 07 jari 106                         uniqueGenes.put(curGeneData.getName(), curGeneData);
2 26 Feb 07 jari 107                     }
2 26 Feb 07 jari 108                 }
2 26 Feb 07 jari 109             }
2 26 Feb 07 jari 110         }catch(Exception e){
2 26 Feb 07 jari 111             e.printStackTrace();
2 26 Feb 07 jari 112         }
2 26 Feb 07 jari 113     }
2 26 Feb 07 jari 114
2 26 Feb 07 jari 115     public Vector getGeneData() {
2 26 Feb 07 jari 116         return geneData;
2 26 Feb 07 jari 117     }
2 26 Feb 07 jari 118
2 26 Feb 07 jari 119     public void setGeneData(Vector geneData){
2 26 Feb 07 jari 120         this.geneData = geneData;
2 26 Feb 07 jari 121     }
2 26 Feb 07 jari 122
2 26 Feb 07 jari 123 }