Author: mes
Date: 2011-11-16 16:00:34 -0800 (Wed, 16 Nov 2011)
New Revision: 27505

Modified:
   
csplugins/trunk/ucsd/mes/gxp-reader/src/main/java/cytoscape/gxp/GXPGraphReader.java
Log:
changed import based on my new understanding of the format

Modified: 
csplugins/trunk/ucsd/mes/gxp-reader/src/main/java/cytoscape/gxp/GXPGraphReader.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/gxp-reader/src/main/java/cytoscape/gxp/GXPGraphReader.java
 2011-11-16 23:21:30 UTC (rev 27504)
+++ 
csplugins/trunk/ucsd/mes/gxp-reader/src/main/java/cytoscape/gxp/GXPGraphReader.java
 2011-11-17 00:00:34 UTC (rev 27505)
@@ -74,7 +74,9 @@
  */
 public class GXPGraphReader extends AbstractGraphReader implements GraphReader 
{
        // node id from file -> node
-       private Map<String,CyNode> nodeIdMap; 
+       private Map<String,CyNode> geneIdMap; 
+       private Map<String,CyNode> moduleIdMap; 
+       private Map<String,CyNode> regulatorIdMap; 
 
        // module id from file -> list of nodes in module
        private Map<String,List<CyNode>> moduleMap; 
@@ -126,86 +128,99 @@
                nodeIds = new ArrayList<Integer>();
                edgeIds = new ArrayList<Integer>();
 
-               nodeIdMap = new HashMap<String,CyNode>();
-               // module -> list of nodes in module
-               moduleMap = new HashMap<String,List<CyNode>>();
-               // regulator -> list of nodes in regulator
-               regulatorMap = new HashMap<String,List<CyNode>>();
+               geneIdMap = new HashMap<String,CyNode>();
+               moduleIdMap = new HashMap<String,CyNode>();
+               regulatorIdMap = new HashMap<String,CyNode>();
 
                try {
 
                        // Actual work
                        SAXBuilder builder = new SAXBuilder(false);
                        Document doc = builder.build(instream);
-       
-                       createNodes( getTable(doc,"Genes") );
-                       createModules( getTable(doc,"Genes_Modules") );
-                       createRegulators( getTable(doc,"Regulators_Regulators") 
);
-                       createEdges( getTable(doc, "Modules_Regulator") );
 
+                       createGeneNodes( getTable(doc,"Genes") );
+                       createModuleNodes( getTable(doc,"Modules") );
+                       createRegulatorNodes( 
getTable(doc,"Regulators_Regulators") );
+                       
+                       createGeneModuleEdges( getTable(doc,"Genes_Modules") );
+                       createModuleRegulatorEdges( getTable(doc, 
"Modules_Regulator") );
+
+
                } catch (JDOMException je) { 
                        throw new IOException("JDOM failure parsing file.",je); 
                }
        }
 
-       private void createEdges(Element moduleRegulators) {
+       private void createModuleRegulatorEdges(Element moduleRegulators) {
                for ( Object o : 
moduleRegulators.getChildren("Module_Regulator") ) {
                        Element moduleRegulator = (Element)o;
                        String moduleId = 
moduleRegulator.getAttributeValue("Module_Id");
                        String regId = 
moduleRegulator.getAttributeValue("Regulator_Id");
-                       if ( moduleId == null || regId == null || 
!moduleMap.containsKey(moduleId) || !regulatorMap.containsKey(regId) )
+                       if ( moduleId == null || 
+                            regId == null || 
+                            !moduleIdMap.containsKey(moduleId) || 
+                                !regulatorIdMap.containsKey(regId) )
                                continue;
 
-                       for ( CyNode na : regulatorMap.get(regId) ) {
-                               for (CyNode nb : moduleMap.get(moduleId) ) {
-                                       CyEdge e = 
Cytoscape.getCyEdge(na,nb,Semantics.INTERACTION,"regulates",true,true);
-                                       edgeIds.add( e.getRootGraphIndex() );
-                               }
-                       }
+                       CyNode na = moduleIdMap.get(moduleId);
+                       CyNode nb = regulatorIdMap.get(regId);
+                       CyEdge e = 
Cytoscape.getCyEdge(na,nb,Semantics.INTERACTION,"regulates",true,true);
+                       edgeIds.add( e.getRootGraphIndex() );
                }
        }
 
-       private void createRegulators(Element regulators) {
-               for ( Object o : regulators.getChildren("Regulator_Gene") ) {
-                       Element regulator = (Element) o;
-                       String regId = 
regulator.getAttributeValue("Regulator_Id");
-                       if ( !regulatorMap.containsKey(regId) )
-                               regulatorMap.put(regId,new ArrayList<CyNode>());
-                       CyNode node = nodeIdMap.get( 
regulator.getAttributeValue("Gene_Id") );
-                       if ( node == null ) {
-                               System.out.println("unable to createRegulator 
for gene_id " + regulator.getAttributeValue("Gene_Id"));
+       private void createGeneModuleEdges(Element geneModules) {
+               for ( Object o : geneModules.getChildren("Gene_Module") ) {
+                       Element geneModule = (Element)o;
+                       String geneId = geneModule.getAttributeValue("Gene_Id");
+                       String moduleId = 
geneModule.getAttributeValue("Module_Id");
+                       if ( moduleId == null || 
+                            geneId == null || 
+                            !moduleIdMap.containsKey(moduleId) || 
+                                !geneIdMap.containsKey(geneId) )
                                continue;
-                       }
-                       regulatorMap.get(regId).add( node );
-                       
Cytoscape.getNodeAttributes().setAttribute(node.getIdentifier(),"GXP_Regulator_Id",regId);
-               }
-       }
 
-       private void createModules(Element geneModules) {
-               for ( Object o : geneModules.getChildren("Gene_Module") ) {
-                       Element geneModule = (Element) o;
-                       CyNode node = nodeIdMap.get( 
geneModule.getAttributeValue("Gene_Id") );
-                       if ( node != null ) {
-                               String moduleId = 
geneModule.getAttributeValue("Module_Id");
-                               
Cytoscape.getNodeAttributes().setAttribute(node.getIdentifier(),"GXP_Module_Id",moduleId);
-                               if ( !moduleMap.containsKey(moduleId) )
-                                       moduleMap.put(moduleId,new 
ArrayList<CyNode>());
-                               moduleMap.get(moduleId).add(node);
-                       }
+                       CyNode na = moduleIdMap.get(moduleId);
+                       CyNode nb = geneIdMap.get(geneId);
+                       CyEdge e = 
Cytoscape.getCyEdge(na,nb,Semantics.INTERACTION,"contains",true,true);
+                       edgeIds.add( e.getRootGraphIndex() );
                }
        }
 
-       private void createNodes(Element genes) {
+       private void createGeneNodes(Element genes) {
                for ( Object o : genes.getChildren("Gene") ) {
                        Element gene = (Element) o;
                        CyNode node = 
Cytoscape.getCyNode(gene.getAttributeValue("ORF"),true);
                        String id = gene.getAttributeValue("Id");
-                       System.out.println("creating node: " + id + "  " + 
node.getIdentifier());
-                       nodeIdMap.put(id,node);
+                       geneIdMap.put(id,node);
                        nodeIds.add( node.getRootGraphIndex() );        
                }
        }
 
+       private void createModuleNodes(Element modules) {
+               for ( Object o : modules.getChildren("Module") ) {
+                       Element module = (Element) o;
+                       String id = module.getAttributeValue("Id");
+                       CyNode node = 
Cytoscape.getCyNode(module.getAttributeValue("Name") + " - " + id,true);
+                       moduleIdMap.put(id,node);
+                       nodeIds.add( node.getRootGraphIndex() );        
+               }
+       }
+
+       private void createRegulatorNodes(Element regulators) {
+               for ( Object o : regulators.getChildren("Regulator_Gene") ) {
+                       Element regulator = (Element) o;
+                       String id = regulator.getAttributeValue("Regulator_Id");
+                       CyNode node = Cytoscape.getCyNode("regulator: " + 
+                                                         
regulator.getAttributeValue("Regulator_ORF") + " - " +
+                                                         
regulator.getAttributeValue("Gene_Id") + " - " +
+                                                         
regulator.getAttributeValue("Regulator") + " - " +
+                                                         
regulator.getAttributeValue("Gene_ORF"), true);
+                       regulatorIdMap.put(id,node);
+                       nodeIds.add( node.getRootGraphIndex() );        
+               }
+       }
+
        private Element getTable(Document doc, String tableName) {
                for ( Object e : doc.getRootElement().getChildren("Table") )
                        if ( 
tableName.equals(((Element)e).getAttributeValue("Type")) )
@@ -214,11 +229,6 @@
                return null;
        }
 
-       /**
-        *  DOCUMENT ME!
-        *
-        * @param network DOCUMENT ME!
-        */
        public void doPostProcessing(CyNetwork network) {
        /*
                // Set SBML specific visual style
@@ -238,11 +248,6 @@
                */
        }
 
-       /**
-        *  DOCUMENT ME!
-        *
-        * @return  DOCUMENT ME!
-        */
        public int[] getNodeIndicesArray() {
                int[] nodes = new int[nodeIds.size()];
 
@@ -252,11 +257,6 @@
                return nodes;
        }
 
-       /**
-        *  DOCUMENT ME!
-        *
-        * @return  DOCUMENT ME!
-        */
        public int[] getEdgeIndicesArray() {
                int[] edges = new int[edgeIds.size()];
 

-- 
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