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.