Author: kono
Date: 2011-06-07 19:12:23 -0700 (Tue, 07 Jun 2011)
New Revision: 25671

Added:
   
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/util/OntologyDAGManager.java
Modified:
   
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/ontology/GeneAssociationReader.java
   
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/ontology/OBONetworkReaderFactory.java
   
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/ontology/OBOReader.java
   
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/task/ImportOntologyAndAnnotationTask.java
   
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/task/ImportOntologyAndAnnotationTaskFactory.java
   
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/ui/OntologyPanelBuilder.java
   
core3/table-import-impl/trunk/src/test/java/org/cytoscape/tableimport/internal/reader/ontology/GeneAssociationReaderTest.java
   
core3/table-import-impl/trunk/src/test/java/org/cytoscape/tableimport/internal/reader/ontology/OBOReaderTest.java
Log:
Term name mapping function had been added.

Modified: 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/ontology/GeneAssociationReader.java
===================================================================
--- 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/ontology/GeneAssociationReader.java
   2011-06-08 00:26:26 UTC (rev 25670)
+++ 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/ontology/GeneAssociationReader.java
   2011-06-08 02:12:23 UTC (rev 25671)
@@ -24,6 +24,7 @@
 import org.cytoscape.model.CyTableEntry;
 import org.cytoscape.model.CyTableFactory;
 import org.cytoscape.session.CyApplicationManager;
+import org.cytoscape.tableimport.internal.util.OntologyDAGManager;
 import org.cytoscape.tableimport.internal.util.OntologyUtil;
 import org.cytoscape.task.MapNetworkAttrTask;
 import org.cytoscape.work.AbstractTask;
@@ -38,7 +39,7 @@
        private static final String COMPATIBLE_VERSION = "gaf-version: 2.0";
 
        private static final String TAXON_RESOURCE_FILE = "tax_report.txt";
-       
+
        private static final String LIST_DELIMITER = "\\|";
 
        // The following columns should be handled as List in GA v2 spec.
@@ -55,9 +56,8 @@
                NAMESPACE_MAP.put("C", "cellular component");
        }
 
-       
        public static final String SYNONYM_COL_NAME = "Synonym";
-       
+
        private static final String EVIDENCE_SUFFIX = " Evidence Code";
        private static final String REFERENCE_SUFFIX = " DB Reference";
        private static final String GO_PREFIX = "GO";
@@ -99,17 +99,20 @@
        private CyTable table;
        private CyTable[] tables;
 
+       private final String ontologyDagName;
+       private List<String> termIDList;
+
        /**
         * Package protected because only in unit testing do we need to specify 
the
         * taxon resource file. Normal operation should use one of the other
         * constructors.
         */
-       public GeneAssociationReader(final CyTableFactory tableFactory, final 
CyNetwork ontologyDAG, final InputStream is,
+       public GeneAssociationReader(final CyTableFactory tableFactory, final 
String ontologyDagName, final InputStream is,
                        final String tableName) throws IOException {
 
+               logger.debug("DAG Manager key = " + ontologyDagName);
+               this.ontologyDagName = ontologyDagName;
                this.tableFactory = tableFactory;
-               // this.ontologyDAG = ontologyDAG;
-               // this.dagTable = ontologyDAG.getDefaultNodeTable();
                this.is = is;
 
                this.tableName = tableName;
@@ -205,7 +208,18 @@
        public void run(TaskMonitor taskMonitor) throws Exception {
                taskMonitor.setTitle("Loading Gene Association File");
                taskMonitor.setStatusMessage("Importing annotation file.  
Please wait...");
-               taskMonitor.setProgress(0.0);
+               taskMonitor.setProgress(-1.0);
+
+               this.ontologyDAG = 
OntologyDAGManager.getOntologyDAG(ontologyDagName);
+
+               if (ontologyDAG == null)
+                       logger.warn("Could not find associated Ontology DAG.");
+               else {
+                       this.dagTable = ontologyDAG.getDefaultNodeTable();
+                       termIDList = 
ontologyDAG.getDefaultNodeTable().getColumn(CyTableEntry.NAME).getValues(String.class);
+                       logger.debug("DAG Name = " + 
ontologyDAG.getCyRow().get(CyTableEntry.NAME, String.class));
+               }
+               
                BufferedReader bufRd = new BufferedReader(new 
InputStreamReader(is));
 
                String line = null;
@@ -278,7 +292,7 @@
                        table.createListColumn(NAMESPACE_MAP.get(name) + 
EVIDENCE_SUFFIX, String.class, false);
                        table.createListColumn(NAMESPACE_MAP.get(name) + 
REFERENCE_SUFFIX, String.class, false);
                }
-               
+
                // Consolidated entry name list
                table.createListColumn(SYNONYM_COL_NAME, String.class, true);
        }
@@ -399,12 +413,15 @@
 
                        // Evidence code and GO ID should be organized by 
namespace.
                        case GO_ID:
-                               final String goidString = entries[i];
+                               String goidString = entries[i];
+                               if(this.termIDList != null)
+                                       goidString = convertToName(goidString);
+                               
                                List<String> currentList = 
row.getList(namespace, String.class);
                                if (currentList == null)
                                        currentList = new ArrayList<String>();
 
-                               if(currentList.contains(goidString) == false)
+                               if (currentList.contains(goidString) == false)
                                        currentList.add(goidString);
                                row.set(namespace, currentList);
 
@@ -424,7 +441,7 @@
                                List<String> valueList = 
row.getList(columnName, String.class);
                                if (valueList == null)
                                        valueList = new ArrayList<String>();
-                               if(valueList.contains(value) == false)
+                               if (valueList.contains(value) == false)
                                        valueList.add(value);
                                row.set(columnName, valueList);
 
@@ -449,8 +466,8 @@
                                List<String> synList = 
row.getList(SYNONYM_COL_NAME, String.class);
                                if (synList == null)
                                        synList = new ArrayList<String>();
-                               
-                               if(tag == GeneAssociationTag.DB_OBJECT_SYNONYM) 
{
+
+                               if (tag == 
GeneAssociationTag.DB_OBJECT_SYNONYM) {
                                        final String[] vals = 
entries[i].split(LIST_DELIMITER);
                                        for (String val : vals) {
                                                if (synList.contains(val) == 
false)
@@ -480,6 +497,19 @@
                        }
                }
        }
+       
+       private String convertToName(final String id) {
+               final Set<CyRow> rows = 
ontologyDAG.getDefaultNodeTable().getMatchingRows(CyTableEntry.NAME, id);
+               if(rows != null) {
+                       final CyRow row = rows.iterator().next();
+                       final String termName = row.get(OBOReader.TERM_NAME, 
String.class);
+                       if(termName != null)
+                               return termName;
+                       else
+                               return id;
+               } else
+                       return id;
+       }
 
        @Override
        public CyTable[] getCyTables() {

Modified: 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/ontology/OBONetworkReaderFactory.java
===================================================================
--- 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/ontology/OBONetworkReaderFactory.java
 2011-06-08 00:26:26 UTC (rev 25670)
+++ 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/ontology/OBONetworkReaderFactory.java
 2011-06-08 02:12:23 UTC (rev 25671)
@@ -32,6 +32,8 @@
        public void setInputStream(InputStream is, String in) {
                if (is == null)
                        throw new NullPointerException("Input stream is null");
+               if (in == null)
+                       throw new NullPointerException("Input stream name is 
null");
                inputStream = is;
                inputName = in;
        }
@@ -42,6 +44,6 @@
 
        @Override
        public TaskIterator getTaskIterator() {
-               return new TaskIterator(new OBOReader(inputStream, 
cyNetworkViewFactory, cyNetworkFactory, eventHelper));
+               return new TaskIterator(new OBOReader(inputName, inputStream, 
cyNetworkViewFactory, cyNetworkFactory, eventHelper));
        }
 }
\ No newline at end of file

Modified: 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/ontology/OBOReader.java
===================================================================
--- 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/ontology/OBOReader.java
       2011-06-08 00:26:26 UTC (rev 25670)
+++ 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/ontology/OBOReader.java
       2011-06-08 02:12:23 UTC (rev 25671)
@@ -34,6 +34,7 @@
 import org.cytoscape.model.CyNode;
 import org.cytoscape.model.CyTable;
 import org.cytoscape.model.CyTableEntry;
+import org.cytoscape.tableimport.internal.util.OntologyDAGManager;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.work.AbstractTask;
@@ -49,7 +50,7 @@
        
        public static final String DAG_ATTR = "Ontology DAG";
        
-       private static final String TERM_NAME = "term name";
+       protected static final String TERM_NAME = "term name";
 
        public static final String OBO_PREFIX = "obo.";
        private static final String DEF_ORIGIN = "def_origin";
@@ -69,13 +70,16 @@
        private final InputStream inputStream;
 
        private final Map<String, CyNode> termID2nodeMap;
+       
+       private final String dagName;
 
-       public OBOReader(final InputStream oboStream, final 
CyNetworkViewFactory cyNetworkViewFactory,
+       public OBOReader(final String dagName, final InputStream oboStream, 
final CyNetworkViewFactory cyNetworkViewFactory,
                        final CyNetworkFactory cyNetworkFactory, final 
CyEventHelper eventHelper) {
                this.inputStream = oboStream;
                this.cyNetworkFactory = cyNetworkFactory;
                this.cyNetworkViewFactory = cyNetworkViewFactory;
                this.eventHelper = eventHelper;
+               this.dagName = dagName;
 
                termID2nodeMap = new HashMap<String, CyNode>();
                networks = new CyNetwork[1];
@@ -91,7 +95,6 @@
 
                // Create new DAG
                this.ontologyDAG = cyNetworkFactory.getInstance();
-
                try {
                        // Phase 1: read header information
                        header = new HashMap<String, String>();
@@ -111,13 +114,13 @@
                } finally {
                        bufRd.close();
                        inputStream.close();
-                       
                }
 
                buildEdge();
 
                networks[0] = this.ontologyDAG;
                
+               OntologyDAGManager.addOntologyDAG(dagName, ontologyDAG);
                logger.debug("Number of terms loaded = " + 
this.termID2nodeMap.size());
                termID2nodeMap.clear();
                
@@ -133,7 +136,7 @@
                final String val = line.substring(colonInx + 1).trim();
                header.put(key, val);
        }
-
+       
        private void mapHeader() {
                final CyTable networkTable = 
this.ontologyDAG.getDefaultNetworkTable();
 
@@ -148,8 +151,10 @@
                        networkTable.createColumn(DAG_ATTR, Boolean.class, 
true);
                
                networkTable.getRow(ontologyDAG.getSUID()).set(DAG_ATTR, true);
+               ontologyDAG.getCyRow().set(CyTableEntry.NAME, dagName);
        }
 
+
        private void readEntry(final BufferedReader rd) throws IOException {
                String id = "";
                String line = null;

Modified: 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/task/ImportOntologyAndAnnotationTask.java
===================================================================
--- 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/task/ImportOntologyAndAnnotationTask.java
    2011-06-08 00:26:26 UTC (rev 25670)
+++ 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/task/ImportOntologyAndAnnotationTask.java
    2011-06-08 02:12:23 UTC (rev 25671)
@@ -21,21 +21,24 @@
        
        private final InputStreamTaskFactory factory;
        private final CyNetworkManager manager;
-       private final String name;
+       private final String ontologyDagName;
        final CyTableFactory tableFactory;
        
        private final InputStream gaStream;
        
-       ImportOntologyAndAnnotationTask(final CyNetworkManager manager, final 
InputStreamTaskFactory factory, InputStream is, String name,
+       private final String gaTableName;
+       
+       ImportOntologyAndAnnotationTask(final CyNetworkManager manager, final 
InputStreamTaskFactory factory, InputStream is, String ontologyDagName,
                        final CyTableFactory tableFactory, final InputStream 
gaStream, final String tableName) {
                this.factory = factory;
                this.manager = manager;
-               this.name = name;
+               this.ontologyDagName = ontologyDagName;
                this.tableFactory = tableFactory;
                
                this.gaStream = gaStream;
+               this.gaTableName = tableName;
                
-               factory.setInputStream(is, name);
+               this.factory.setInputStream(is, ontologyDagName);
        }
        
        @Override
@@ -43,11 +46,11 @@
                logger.debug("Start");
                Task loadOBOTask = factory.getTaskIterator().next();
                
-               final GeneAssociationReader gaReader = new 
GeneAssociationReader(tableFactory, null, gaStream, "GA Table");
+               final GeneAssociationReader gaReader = new 
GeneAssociationReader(tableFactory, ontologyDagName, gaStream, gaTableName);
                
                insertTasksAfterCurrentTask(new 
MapGeneAssociationTask(gaReader, manager));
                insertTasksAfterCurrentTask(gaReader);
-               insertTasksAfterCurrentTask(new 
RegisterOntologyTask((CyNetworkReader) loadOBOTask, manager, name));
+               insertTasksAfterCurrentTask(new 
RegisterOntologyTask((CyNetworkReader) loadOBOTask, manager, ontologyDagName));
                insertTasksAfterCurrentTask(loadOBOTask);
                
        }

Modified: 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/task/ImportOntologyAndAnnotationTaskFactory.java
===================================================================
--- 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/task/ImportOntologyAndAnnotationTaskFactory.java
     2011-06-08 00:26:26 UTC (rev 25670)
+++ 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/task/ImportOntologyAndAnnotationTaskFactory.java
     2011-06-08 02:12:23 UTC (rev 25671)
@@ -3,7 +3,6 @@
 import java.io.InputStream;
 
 import org.cytoscape.io.read.InputStreamTaskFactory;
-import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkManager;
 import org.cytoscape.model.CyTableFactory;
 import org.cytoscape.work.TaskFactory;
@@ -13,28 +12,28 @@
 
        private final InputStreamTaskFactory factory;
        private InputStream is;
-       private String name;
+       private String ontologyDAGName;
        private final CyNetworkManager manager;
        
        final CyTableFactory tableFactory;
        final InputStream gaStream;
-       private String tableName;
+       private String gaGlobalTableName;
 
        public ImportOntologyAndAnnotationTaskFactory(final CyNetworkManager 
manager, final InputStreamTaskFactory factory,
-                       InputStream is, String name, final CyTableFactory 
tableFactory,
-                       final InputStream gaStream, final String tableName) {
+                       InputStream is, String ontologyDAGName, final 
CyTableFactory tableFactory,
+                       final InputStream gaStream, final String 
gaGlobalTableName) {
                this.factory = factory;
                this.is = is;
-               this.name = name;
+               this.ontologyDAGName = ontologyDAGName;
                this.manager = manager;
                
                this.tableFactory = tableFactory;
                this.gaStream = gaStream;
-               this.tableName = tableName;
+               this.gaGlobalTableName = gaGlobalTableName;
        }
 
        @Override
        public TaskIterator getTaskIterator() {
-               return new TaskIterator(new 
ImportOntologyAndAnnotationTask(manager, factory, is, name, tableFactory, 
gaStream, tableName));
+               return new TaskIterator(new 
ImportOntologyAndAnnotationTask(manager, factory, is, ontologyDAGName, 
tableFactory, gaStream, gaGlobalTableName));
        }
 }

Modified: 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/ui/OntologyPanelBuilder.java
===================================================================
--- 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/ui/OntologyPanelBuilder.java
 2011-06-08 00:26:26 UTC (rev 25670)
+++ 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/ui/OntologyPanelBuilder.java
 2011-06-08 02:12:23 UTC (rev 25671)
@@ -527,7 +527,8 @@
        private void loadOntology(final String dataSource, final String 
ontologyName, final String annotationSource)
                        throws IOException {
                logger.debug("Target OBO URL = " + dataSource);
-               logger.debug("!!!!!!!!!!!!GA URL = " + annotationSource);
+               logger.debug("Gene Association URL = " + annotationSource);
+               logger.debug("Ontology DAG Name ===== " + ontologyName);
                final URL url = new URL(dataSource);
                final URL annotationSourceUrl = new URL(annotationSource);
 

Added: 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/util/OntologyDAGManager.java
===================================================================
--- 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/util/OntologyDAGManager.java
                         (rev 0)
+++ 
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/util/OntologyDAGManager.java
 2011-06-08 02:12:23 UTC (rev 25671)
@@ -0,0 +1,24 @@
+package org.cytoscape.tableimport.internal.util;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.cytoscape.model.CyNetwork;
+
+/**
+ * Simple manager for loaded ontology dags.
+ *
+ */
+public class OntologyDAGManager {
+       
+       private static final Map<String, CyNetwork> dagMap = new 
HashMap<String, CyNetwork>();
+       
+       public static CyNetwork getOntologyDAG(final String ontologyID) {
+               return dagMap.get(ontologyID);
+       }
+       
+       public static void addOntologyDAG(final String ontologyID, CyNetwork 
dag) {
+               dagMap.put(ontologyID, dag);
+       }
+
+}

Modified: 
core3/table-import-impl/trunk/src/test/java/org/cytoscape/tableimport/internal/reader/ontology/GeneAssociationReaderTest.java
===================================================================
--- 
core3/table-import-impl/trunk/src/test/java/org/cytoscape/tableimport/internal/reader/ontology/GeneAssociationReaderTest.java
       2011-06-08 00:26:26 UTC (rev 25670)
+++ 
core3/table-import-impl/trunk/src/test/java/org/cytoscape/tableimport/internal/reader/ontology/GeneAssociationReaderTest.java
       2011-06-08 02:12:23 UTC (rev 25671)
@@ -57,7 +57,7 @@
        @Test
        public void gaReaderTest() throws Exception {
                File file = new File("./src/test/resources/" + GA_YEAST);
-               GeneAssociationReader reader = new 
GeneAssociationReader(tableFactory, dag, file
+               GeneAssociationReader reader = new 
GeneAssociationReader(tableFactory, "dummy dag", file
                                .toURI().toURL().openStream(), "yeast GA");
 
                

Modified: 
core3/table-import-impl/trunk/src/test/java/org/cytoscape/tableimport/internal/reader/ontology/OBOReaderTest.java
===================================================================
--- 
core3/table-import-impl/trunk/src/test/java/org/cytoscape/tableimport/internal/reader/ontology/OBOReaderTest.java
   2011-06-08 00:26:26 UTC (rev 25670)
+++ 
core3/table-import-impl/trunk/src/test/java/org/cytoscape/tableimport/internal/reader/ontology/OBOReaderTest.java
   2011-06-08 02:12:23 UTC (rev 25671)
@@ -62,7 +62,7 @@
        }
        
        private CyNetwork testFile(File file) throws Exception {
-               final OBOReader reader = new 
OBOReader(file.toURI().toURL().openStream(), cyNetworkViewFactory,
+               final OBOReader reader = new OBOReader(file.getName(), 
file.toURI().toURL().openStream(), cyNetworkViewFactory,
                                cyNetworkFactory, eventHelper);
                
                reader.run(null);

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to