Author: pwang
Date: 2011-10-29 11:21:26 -0700 (Sat, 29 Oct 2011)
New Revision: 27339
Added:
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIAEdgeContextMenuListener.javaX
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIANodeContextMenuListener.javaX
Removed:
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIAEdgeContextMenuListener.java
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIANodeContextMenuListener.java
Log:
Rename class
Deleted:
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIAEdgeContextMenuListener.java
===================================================================
---
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIAEdgeContextMenuListener.java
2011-10-29 18:16:58 UTC (rev 27338)
+++
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIAEdgeContextMenuListener.java
2011-10-29 18:21:26 UTC (rev 27339)
@@ -1,74 +0,0 @@
-package org.idekerlab.PanGIAPlugin;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import org.cytoscape.view.model.View;
-import org.cytoscape.model.CyEdge;
-
-import javax.swing.JMenu;
-import javax.swing.JMenuItem;
-import javax.swing.JPopupMenu;
-
-import org.cytoscape.model.CyNode;
-import org.cytoscape.model.CyTable;
-import org.cytoscape.view.model.CyNetworkView;
-//import ding.view.EdgeContextMenuListener;
-
-public class PanGIAEdgeContextMenuListener implements EdgeContextMenuListener
-{
- private final CyNetworkView view;
- private CyTable edgeAttr = view.getModel().getDefaultEdgeTable();
-
-
- public PanGIAEdgeContextMenuListener(CyNetworkView view)
- {
- this.view = view;
- }
-
- public void addEdgeContextMenuItems(View<CyEdge> ev, JPopupMenu menu)
- {
- PanGIANodeContextMenuListener.addContextMenuItems(view,
ev.getGraphView(), menu);
-
- /*
- if (menu == null)
- return;
-
- boolean selectedHasNested = false;
-
- for (Object n : ev.getGraphView().getSelectedNodes())
- if
(((ding.view.DNodeView)n).getNode().getNestedNetwork()!=null)
- {
- selectedHasNested = true;
- break;
- }
-
-
- boolean isOverviewNetwork = PanGIAPlugin.output.isAvailable() &&
view.getNetwork().getIdentifier().equals(PanGIAPlugin.output.getOverviewNetwork().getIdentifier());
-
-
- if (selectedHasNested && isOverviewNetwork)
- {
- final JMenu pangiaMenu = new JMenu("PanGIA");
-
-
-
- JMenuItem item = new JMenuItem();
- item.setText("Create Detailed View");
- item.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e) {
- DetailedNetworkCreator.createDetailedView(view);
- }
- });
-
- pangiaMenu.add(item);
-
-
-
- menu.add(pangiaMenu);
- }
- */
-
- }
-}
Added:
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIAEdgeContextMenuListener.javaX
===================================================================
---
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIAEdgeContextMenuListener.javaX
(rev 0)
+++
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIAEdgeContextMenuListener.javaX
2011-10-29 18:21:26 UTC (rev 27339)
@@ -0,0 +1,74 @@
+package org.idekerlab.PanGIAPlugin;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import org.cytoscape.view.model.View;
+import org.cytoscape.model.CyEdge;
+
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+import javax.swing.JPopupMenu;
+
+import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyTable;
+import org.cytoscape.view.model.CyNetworkView;
+//import ding.view.EdgeContextMenuListener;
+
+public class PanGIAEdgeContextMenuListener implements EdgeContextMenuListener
+{
+ private final CyNetworkView view;
+ private CyTable edgeAttr = view.getModel().getDefaultEdgeTable();
+
+
+ public PanGIAEdgeContextMenuListener(CyNetworkView view)
+ {
+ this.view = view;
+ }
+
+ public void addEdgeContextMenuItems(View<CyEdge> ev, JPopupMenu menu)
+ {
+ PanGIANodeContextMenuListener.addContextMenuItems(view,
ev.getGraphView(), menu);
+
+ /*
+ if (menu == null)
+ return;
+
+ boolean selectedHasNested = false;
+
+ for (Object n : ev.getGraphView().getSelectedNodes())
+ if
(((ding.view.DNodeView)n).getNode().getNestedNetwork()!=null)
+ {
+ selectedHasNested = true;
+ break;
+ }
+
+
+ boolean isOverviewNetwork = PanGIAPlugin.output.isAvailable() &&
view.getNetwork().getIdentifier().equals(PanGIAPlugin.output.getOverviewNetwork().getIdentifier());
+
+
+ if (selectedHasNested && isOverviewNetwork)
+ {
+ final JMenu pangiaMenu = new JMenu("PanGIA");
+
+
+
+ JMenuItem item = new JMenuItem();
+ item.setText("Create Detailed View");
+ item.addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e) {
+ DetailedNetworkCreator.createDetailedView(view);
+ }
+ });
+
+ pangiaMenu.add(item);
+
+
+
+ menu.add(pangiaMenu);
+ }
+ */
+
+ }
+}
Deleted:
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIANodeContextMenuListener.java
===================================================================
---
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIANodeContextMenuListener.java
2011-10-29 18:16:58 UTC (rev 27338)
+++
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIANodeContextMenuListener.java
2011-10-29 18:21:26 UTC (rev 27339)
@@ -1,455 +0,0 @@
-package org.idekerlab.PanGIAPlugin;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.JFileChooser;
-import javax.swing.JMenu;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JPopupMenu;
-
-import org.idekerlab.PanGIAPlugin.utilities.collections.HashMapUtil;
-import org.idekerlab.PanGIAPlugin.utilities.files.FileUtil;
-
-//import giny.model.Edge;
-//import giny.model.Node;
-//import giny.view.EdgeView;
-//import giny.view.GraphView;
-//import giny.view.NodeView;
-import org.cytoscape.model.CyEdge;
-import org.cytoscape.model.CyNetwork;
-import org.cytoscape.model.CyNode;
-import org.cytoscape.model.CyTable;
-import org.cytoscape.view.model.CyNetworkView;
-//import ding.view.NodeContextMenuListener;
-
-import java.util.*;
-
-import org.idekerlab.PanGIAPlugin.data.StringMatrix;
-
-import java.io.*;
-
-public class PanGIANodeContextMenuListener implements NodeContextMenuListener
-{
- private final CyNetworkView view;
-
- public PanGIANodeContextMenuListener(CyNetworkView view)
- {
- this.view = view;
- }
-
- public void addNodeContextMenuItems(NodeView nv, JPopupMenu menu)
- {
- addContextMenuItems(view, nv.getGraphView(), menu);
- }
-
- public static void addContextMenuItems(final CyNetworkView aview,
GraphView gv, JPopupMenu menu)
- {
- if (menu == null)
- return;
-
- final JMenu pangiaMenu = new JMenu("PanGIA");
-
- boolean selectedHasNested = false;
-
- for (Object n : gv.getSelectedNodes())
- if
(((ding.view.DNodeView)n).getNode().getNestedNetwork()!=null)
- {
- selectedHasNested = true;
- break;
- }
-
- boolean isOverviewNetwork =
PanGIAPlugin.output.containsKey(aview.getNetwork().getIdentifier());
-
- //ITEM1
- if (selectedHasNested && isOverviewNetwork)
- {
- JMenuItem item = new JMenuItem();
- item.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e) {
- DetailedNetworkCreator.createDetailedView(aview);
- }
- });
- item.setText("Create Detailed View");
-
- pangiaMenu.add(item);
- }
-
- //ITEM2
- if (isOverviewNetwork)
- {
- JMenuItem item2 = new JMenuItem();
- item2.setText("Export Modules to Tab-Delimited File");
- item2.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e) {
- saveModules(aview,
PanGIAPlugin.output.get(aview.getNetwork().getIdentifier()).getNodeAttrName());
- }
- });
- pangiaMenu.add(item2);
- }
-
- //ITEM3
- if (isOverviewNetwork)
- {
- JMenuItem item3 = new JMenuItem();
- item3.setText("Export Module Map to Tab-Delimited File");
- item3.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e) {
- saveOverviewNetwork(aview);
- }
- });
- pangiaMenu.add(item3);
- }
-
- //ITEM4
- if (isOverviewNetwork)
- {
- JMenu item1 = new JMenu();
- item1.setText("Save Selected Nodes to Matrix File");
-
- final PanGIAOutput output =
PanGIAPlugin.output.get(aview.getNetwork().getIdentifier());
-
- //String[] ean = edgeAttr.getAttributeNames();
-
- String[] ean = new
String[]{output.getPhysEdgeAttrName(),output.getGenEdgeAttrName()};
-
- List<String> eaNames = new ArrayList<String>(ean.length);
- for (String s : ean) eaNames.add(s);
-
-
eaNames.removeAll(NestedNetworkCreator.getEdgeAttributeNames());
-
eaNames.remove(NestedNetworkCreator.REFERENCE_NETWORK_NAME_ATTRIB);
-
- for (final String ea : eaNames)
- {
- JMenuItem eaItem = new JMenuItem();
- eaItem.setText(ea);
-
- eaItem.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e) {
- JFileChooser jfc = new JFileChooser();
- jfc.setCurrentDirectory(new File("."));
- int returnVal =
jfc.showSaveDialog(aview.getComponent());
-
- if (returnVal==JFileChooser.APPROVE_OPTION)
- saveNodesToMatrix(aview,
jfc.getSelectedFile(),output.getNodeAttrName(),ea);
- }
- });
- item1.add(eaItem);
- }
- pangiaMenu.add(item1);
- }
-
- /*
- //Copy network with new node IDs
- JMenuItem item1 = new JMenuItem();
- item1.setText("Copy Network");
-
-
- for (final String aname :
Cytoscape.getNodeAttributes().getAttributeNames())
- {
- if (!edgeAttr.getType(aname).equals("String")) continue;
-
- JMenuItem eaItem = new JMenuItem();
- eaItem.setText(aname);
- eaItem.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e) {
- copyNetworkWithNewIDs(aview.getNetwork(), aname);
- }
- });
- item1.add(eaItem);
- }
-
- pangiaMenu.add(item1);
- */
-
- //MENU
- if (pangiaMenu.getItemCount()>0) menu.add(pangiaMenu);
- }
-
- private static void copyNetworkWithNewIDs(CyNetwork net, String aname)
- {
- //Get the new name
- String newTitle = net.getTitle()+"_"+aname;
-
- boolean hasDup = true;
- int index = 2;
- while(hasDup)
- {
- hasDup = false;
- for (CyNetwork cnet : Cytoscape.getNetworkSet())
- if (cnet.getTitle().equals(newTitle))
- {
- newTitle = net.getTitle()+"_"+aname+"
("+index+")";
- index++;
- hasDup = true;
- break;
- }
- }
-
-
- //Create nodes
- List<CyNode> nodes = new ArrayList<CyNode>(net.getNodeCount());
- CyAttributes nodeAttr = Cytoscape.getNodeAttributes();
-
-
- for (int ni : net.getNodeIndicesArray())
- {
- String newID =
String.valueOf(nodeAttr.getAttribute(net.getNode(ni).getIdentifier(),aname));
- if (newID.equals("")) continue;
- nodes.add(Cytoscape.getCyNode(newID,true));
- }
-
- CyAttributes edgeAttr = Cytoscape.getEdgeAttributes();
-
- List<CyEdge> edges = new ArrayList<CyEdge>(net.getEdgeCount());
- for (int ei : net.getEdgeIndicesArray())
- {
- String sourceID =
String.valueOf(nodeAttr.getAttribute(net.getNode(net.getEdgeSourceIndex(ei)).getIdentifier(),aname));
- String targetID =
String.valueOf(nodeAttr.getAttribute(net.getNode(net.getEdgeTargetIndex(ei)).getIdentifier(),aname));
-
- if (sourceID.equals("") || targetID.equals("")) continue;
-
- edges.add(Cytoscape.getCyEdge(sourceID, sourceID+" -
"+targetID, targetID,
String.valueOf(edgeAttr.getAttribute(net.getEdge(ei).getIdentifier(),"interaction"))));
- }
-
-
- CyNetwork newNet = Cytoscape.createNetwork(nodes, edges, newTitle);
- Cytoscape.createNetworkView(newNet);
-
- //Need to copy edge attributes as well!
- }
-
- private static void saveNodesToMatrix(final CyNetworkView aview, File
file, String nAttr, String eattr)
- {
- CyAttributes nodeAttr = Cytoscape.getNodeAttributes();
- CyAttributes edgeAttr = Cytoscape.getEdgeAttributes();
-
- int[] selectedNodes = aview.getSelectedNodeIndices();
-
- Set<Integer> choiceNodes = new HashSet<Integer>(1000);
- for (int i : selectedNodes)
- {
- if (aview.getRootGraph().getNode(i).getNestedNetwork()==null)
choiceNodes.add(i);
- else
- {
- for (int j :
aview.getRootGraph().getNode(i).getNestedNetwork().getNodeIndicesArray())
- choiceNodes.add(j);
- }
- }
-
- selectedNodes = new int[choiceNodes.size()];
- int ind=0;
- for (int i : choiceNodes)
- {
- selectedNodes[ind] = i;
- ind++;
- }
-
- String[] ids = new String[selectedNodes.length];
-
- for (int i=0;i<selectedNodes.length;i++)
- ids[i] =
String.valueOf(nodeAttr.getAttribute(aview.getRootGraph().getNode(selectedNodes[i]).getIdentifier(),nAttr));
-
- double[][] m = new double[selectedNodes.length][];
-
- for (int i=0;i<selectedNodes.length;i++)
- {
- int jcount = i+1;
- m[i] = new double[jcount];
-
- for (int j=0;j<jcount;j++)
- {
- m[i][j] = Double.NaN;
-
- for (int ei :
aview.getRootGraph().getConnectingEdgeIndicesArray(new
int[]{selectedNodes[i],selectedNodes[j]}))
- {
- Double d =
edgeAttr.getDoubleAttribute(aview.getRootGraph().getEdge(ei).getIdentifier(),
eattr);
-
- if (d!=null)
- {
- m[i][j] = d;
- break;
- }
- }
- }
- }
-
- BufferedWriter bw = FileUtil.getBufferedWriter(file.getAbsolutePath(),
false);
-
- try
- {
- bw.write("Gene");
-
- for (String id : ids)
- bw.write("\t"+id);
-
- bw.write("\n");
-
- for (int i=0;i<m.length;i++)
- {
- bw.write(ids[i]);
- for (int j=0;j<=i;j++)
- bw.write("\t"+m[i][j]);
-
- for (int i2=i+1;i2<m.length;i2++)
- bw.write("\t"+m[i2][i]);
-
- bw.write("\n");
- }
-
- bw.close();
-
- JOptionPane.showMessageDialog(null, "Matrix saved
successfully.");
-
- }catch (Exception e)
- {
- e.printStackTrace();
- JOptionPane.showMessageDialog(null, "There was a problem
saving the matrix: "+e.getMessage());
- }
- }
-
- public static void saveModules(CyNetworkView view, String nodeAttrName)
- {
- CyAttributes nodeAttr = Cytoscape.getNodeAttributes();
-
- JFileChooser jfc = new JFileChooser();
- jfc.setCurrentDirectory(new File("."));
- int returnVal = jfc.showSaveDialog(view.getComponent());
-
- if (returnVal==JFileChooser.APPROVE_OPTION)
- {
- String fout = jfc.getSelectedFile().getAbsolutePath();
-
- Map<String,Set<String>> mod_nodes = new
HashMap<String,Set<String>>(1000);
-
- for (int ni : view.getNetwork().getNodeIndicesArray())
- {
- Node n = Cytoscape.getRootGraph().getNode(ni);
-
- Set<String> nodes = new HashSet<String>(1000);
-
- for (int ni2 :
n.getNestedNetwork().getNodeIndicesArray())
-
nodes.add(String.valueOf(nodeAttr.getAttribute(Cytoscape.getRootGraph().getNode(ni2).getIdentifier(),nodeAttrName)));
-
- mod_nodes.put(n.getIdentifier(), nodes);
- }
-
- try
- {
- BufferedWriter bw = new BufferedWriter(new
FileWriter(fout));
-
- for (String key : mod_nodes.keySet()) {
- bw.write(key + "\t");
-
- Set<String> vals = mod_nodes.get(key);
-
- boolean first = true;
- for (String val : vals)
- if (!first)
- bw.write("|" + val);
- else {
- first = false;
- bw.write(val);
- }
-
- bw.write("\n");
- }
-
- bw.close();
-
- JOptionPane.showMessageDialog(null, "Modules
saved successfully.");
- } catch (Exception e)
- {
- e.printStackTrace();
- JOptionPane.showMessageDialog(null, "There was a
problem saving the modules: "+e.getMessage());
- }
-
- }
-
- }
-
- public static void saveOverviewNetwork(CyNetworkView view)
- {
- JFileChooser jfc = new JFileChooser();
- jfc.setCurrentDirectory(new File("."));
- int returnVal = jfc.showSaveDialog(view.getComponent());
-
- if (returnVal==JFileChooser.APPROVE_OPTION)
- {
- String fout = jfc.getSelectedFile().getAbsolutePath();
-
- List<EdgeView> edges = (List<EdgeView>)
view.getEdgeViewsList();
-
- StringMatrix out = new StringMatrix(edges.size(),9);
-
- List<String> edgeAttributes =
NestedNetworkCreator.getEdgeAttributeNames();
-
- List<String> colNames = new ArrayList<String>(9);
- colNames.add("NodeA");
- colNames.add("NodeB");
- colNames.addAll(edgeAttributes);
- out.setColNames(colNames);
-
- CyAttributes edgeAttr = Cytoscape.getEdgeAttributes();
-
- int row = 0;
- for (EdgeView ev : edges)
- {
- Edge e = ev.getEdge();
-
- out.set(row, 0, e.getSource().getIdentifier());
- out.set(row, 1, e.getTarget().getIdentifier());
-
- for (int j=0;j<edgeAttributes.size();j++)
- out.set(row, j+2,
edgeAttr.getAttribute(e.getIdentifier(), edgeAttributes.get(j)).toString());
-
- row++;
- }
-
- try
- {
- //Open/Create file for writing. If no file exists
append->false
- BufferedWriter bw = new BufferedWriter(new
FileWriter(fout));
-
- if (out.hasColNames())
- {
- if (out.hasRowNames()) bw.write("\t");
-
- bw.write(out.getColName(0));
- for (int i=1;i<out.numCols();i++)
- bw.write("\t" +
out.getColName(i));
-
- bw.write("\n");
- }
-
- for (int i=0;i<out.numRows();i++)
- {
- if (out.hasRowNames())
bw.write(out.getRowName(i)+"\t");
-
- bw.write(out.get(i,0));
- for (int j=1;j<out.numCols();j++)
- bw.write("\t" + out.get(i,j));
-
- bw.write("\n");
- }
-
- bw.close();
- JOptionPane.showMessageDialog(null, "Overview network
saved successfully.");
-
- }catch (Exception e)
- {
- e.printStackTrace();
- JOptionPane.showMessageDialog(null, "There was a
problem saving the overview network: "+e.getMessage());
- }
-
-
-
- }
- }
-}
Added:
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIANodeContextMenuListener.javaX
===================================================================
---
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIANodeContextMenuListener.javaX
(rev 0)
+++
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/PanGIANodeContextMenuListener.javaX
2011-10-29 18:21:26 UTC (rev 27339)
@@ -0,0 +1,455 @@
+package org.idekerlab.PanGIAPlugin;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JFileChooser;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPopupMenu;
+
+import org.idekerlab.PanGIAPlugin.utilities.collections.HashMapUtil;
+import org.idekerlab.PanGIAPlugin.utilities.files.FileUtil;
+
+//import giny.model.Edge;
+//import giny.model.Node;
+//import giny.view.EdgeView;
+//import giny.view.GraphView;
+//import giny.view.NodeView;
+import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyTable;
+import org.cytoscape.view.model.CyNetworkView;
+//import ding.view.NodeContextMenuListener;
+
+import java.util.*;
+
+import org.idekerlab.PanGIAPlugin.data.StringMatrix;
+
+import java.io.*;
+
+public class PanGIANodeContextMenuListener implements NodeContextMenuListener
+{
+ private final CyNetworkView view;
+
+ public PanGIANodeContextMenuListener(CyNetworkView view)
+ {
+ this.view = view;
+ }
+
+ public void addNodeContextMenuItems(NodeView nv, JPopupMenu menu)
+ {
+ addContextMenuItems(view, nv.getGraphView(), menu);
+ }
+
+ public static void addContextMenuItems(final CyNetworkView aview,
GraphView gv, JPopupMenu menu)
+ {
+ if (menu == null)
+ return;
+
+ final JMenu pangiaMenu = new JMenu("PanGIA");
+
+ boolean selectedHasNested = false;
+
+ for (Object n : gv.getSelectedNodes())
+ if
(((ding.view.DNodeView)n).getNode().getNestedNetwork()!=null)
+ {
+ selectedHasNested = true;
+ break;
+ }
+
+ boolean isOverviewNetwork =
PanGIAPlugin.output.containsKey(aview.getNetwork().getIdentifier());
+
+ //ITEM1
+ if (selectedHasNested && isOverviewNetwork)
+ {
+ JMenuItem item = new JMenuItem();
+ item.addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e) {
+ DetailedNetworkCreator.createDetailedView(aview);
+ }
+ });
+ item.setText("Create Detailed View");
+
+ pangiaMenu.add(item);
+ }
+
+ //ITEM2
+ if (isOverviewNetwork)
+ {
+ JMenuItem item2 = new JMenuItem();
+ item2.setText("Export Modules to Tab-Delimited File");
+ item2.addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e) {
+ saveModules(aview,
PanGIAPlugin.output.get(aview.getNetwork().getIdentifier()).getNodeAttrName());
+ }
+ });
+ pangiaMenu.add(item2);
+ }
+
+ //ITEM3
+ if (isOverviewNetwork)
+ {
+ JMenuItem item3 = new JMenuItem();
+ item3.setText("Export Module Map to Tab-Delimited File");
+ item3.addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e) {
+ saveOverviewNetwork(aview);
+ }
+ });
+ pangiaMenu.add(item3);
+ }
+
+ //ITEM4
+ if (isOverviewNetwork)
+ {
+ JMenu item1 = new JMenu();
+ item1.setText("Save Selected Nodes to Matrix File");
+
+ final PanGIAOutput output =
PanGIAPlugin.output.get(aview.getNetwork().getIdentifier());
+
+ //String[] ean = edgeAttr.getAttributeNames();
+
+ String[] ean = new
String[]{output.getPhysEdgeAttrName(),output.getGenEdgeAttrName()};
+
+ List<String> eaNames = new ArrayList<String>(ean.length);
+ for (String s : ean) eaNames.add(s);
+
+
eaNames.removeAll(NestedNetworkCreator.getEdgeAttributeNames());
+
eaNames.remove(NestedNetworkCreator.REFERENCE_NETWORK_NAME_ATTRIB);
+
+ for (final String ea : eaNames)
+ {
+ JMenuItem eaItem = new JMenuItem();
+ eaItem.setText(ea);
+
+ eaItem.addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e) {
+ JFileChooser jfc = new JFileChooser();
+ jfc.setCurrentDirectory(new File("."));
+ int returnVal =
jfc.showSaveDialog(aview.getComponent());
+
+ if (returnVal==JFileChooser.APPROVE_OPTION)
+ saveNodesToMatrix(aview,
jfc.getSelectedFile(),output.getNodeAttrName(),ea);
+ }
+ });
+ item1.add(eaItem);
+ }
+ pangiaMenu.add(item1);
+ }
+
+ /*
+ //Copy network with new node IDs
+ JMenuItem item1 = new JMenuItem();
+ item1.setText("Copy Network");
+
+
+ for (final String aname :
Cytoscape.getNodeAttributes().getAttributeNames())
+ {
+ if (!edgeAttr.getType(aname).equals("String")) continue;
+
+ JMenuItem eaItem = new JMenuItem();
+ eaItem.setText(aname);
+ eaItem.addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e) {
+ copyNetworkWithNewIDs(aview.getNetwork(), aname);
+ }
+ });
+ item1.add(eaItem);
+ }
+
+ pangiaMenu.add(item1);
+ */
+
+ //MENU
+ if (pangiaMenu.getItemCount()>0) menu.add(pangiaMenu);
+ }
+
+ private static void copyNetworkWithNewIDs(CyNetwork net, String aname)
+ {
+ //Get the new name
+ String newTitle = net.getTitle()+"_"+aname;
+
+ boolean hasDup = true;
+ int index = 2;
+ while(hasDup)
+ {
+ hasDup = false;
+ for (CyNetwork cnet : Cytoscape.getNetworkSet())
+ if (cnet.getTitle().equals(newTitle))
+ {
+ newTitle = net.getTitle()+"_"+aname+"
("+index+")";
+ index++;
+ hasDup = true;
+ break;
+ }
+ }
+
+
+ //Create nodes
+ List<CyNode> nodes = new ArrayList<CyNode>(net.getNodeCount());
+ CyAttributes nodeAttr = Cytoscape.getNodeAttributes();
+
+
+ for (int ni : net.getNodeIndicesArray())
+ {
+ String newID =
String.valueOf(nodeAttr.getAttribute(net.getNode(ni).getIdentifier(),aname));
+ if (newID.equals("")) continue;
+ nodes.add(Cytoscape.getCyNode(newID,true));
+ }
+
+ CyAttributes edgeAttr = Cytoscape.getEdgeAttributes();
+
+ List<CyEdge> edges = new ArrayList<CyEdge>(net.getEdgeCount());
+ for (int ei : net.getEdgeIndicesArray())
+ {
+ String sourceID =
String.valueOf(nodeAttr.getAttribute(net.getNode(net.getEdgeSourceIndex(ei)).getIdentifier(),aname));
+ String targetID =
String.valueOf(nodeAttr.getAttribute(net.getNode(net.getEdgeTargetIndex(ei)).getIdentifier(),aname));
+
+ if (sourceID.equals("") || targetID.equals("")) continue;
+
+ edges.add(Cytoscape.getCyEdge(sourceID, sourceID+" -
"+targetID, targetID,
String.valueOf(edgeAttr.getAttribute(net.getEdge(ei).getIdentifier(),"interaction"))));
+ }
+
+
+ CyNetwork newNet = Cytoscape.createNetwork(nodes, edges, newTitle);
+ Cytoscape.createNetworkView(newNet);
+
+ //Need to copy edge attributes as well!
+ }
+
+ private static void saveNodesToMatrix(final CyNetworkView aview, File
file, String nAttr, String eattr)
+ {
+ CyAttributes nodeAttr = Cytoscape.getNodeAttributes();
+ CyAttributes edgeAttr = Cytoscape.getEdgeAttributes();
+
+ int[] selectedNodes = aview.getSelectedNodeIndices();
+
+ Set<Integer> choiceNodes = new HashSet<Integer>(1000);
+ for (int i : selectedNodes)
+ {
+ if (aview.getRootGraph().getNode(i).getNestedNetwork()==null)
choiceNodes.add(i);
+ else
+ {
+ for (int j :
aview.getRootGraph().getNode(i).getNestedNetwork().getNodeIndicesArray())
+ choiceNodes.add(j);
+ }
+ }
+
+ selectedNodes = new int[choiceNodes.size()];
+ int ind=0;
+ for (int i : choiceNodes)
+ {
+ selectedNodes[ind] = i;
+ ind++;
+ }
+
+ String[] ids = new String[selectedNodes.length];
+
+ for (int i=0;i<selectedNodes.length;i++)
+ ids[i] =
String.valueOf(nodeAttr.getAttribute(aview.getRootGraph().getNode(selectedNodes[i]).getIdentifier(),nAttr));
+
+ double[][] m = new double[selectedNodes.length][];
+
+ for (int i=0;i<selectedNodes.length;i++)
+ {
+ int jcount = i+1;
+ m[i] = new double[jcount];
+
+ for (int j=0;j<jcount;j++)
+ {
+ m[i][j] = Double.NaN;
+
+ for (int ei :
aview.getRootGraph().getConnectingEdgeIndicesArray(new
int[]{selectedNodes[i],selectedNodes[j]}))
+ {
+ Double d =
edgeAttr.getDoubleAttribute(aview.getRootGraph().getEdge(ei).getIdentifier(),
eattr);
+
+ if (d!=null)
+ {
+ m[i][j] = d;
+ break;
+ }
+ }
+ }
+ }
+
+ BufferedWriter bw = FileUtil.getBufferedWriter(file.getAbsolutePath(),
false);
+
+ try
+ {
+ bw.write("Gene");
+
+ for (String id : ids)
+ bw.write("\t"+id);
+
+ bw.write("\n");
+
+ for (int i=0;i<m.length;i++)
+ {
+ bw.write(ids[i]);
+ for (int j=0;j<=i;j++)
+ bw.write("\t"+m[i][j]);
+
+ for (int i2=i+1;i2<m.length;i2++)
+ bw.write("\t"+m[i2][i]);
+
+ bw.write("\n");
+ }
+
+ bw.close();
+
+ JOptionPane.showMessageDialog(null, "Matrix saved
successfully.");
+
+ }catch (Exception e)
+ {
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null, "There was a problem
saving the matrix: "+e.getMessage());
+ }
+ }
+
+ public static void saveModules(CyNetworkView view, String nodeAttrName)
+ {
+ CyAttributes nodeAttr = Cytoscape.getNodeAttributes();
+
+ JFileChooser jfc = new JFileChooser();
+ jfc.setCurrentDirectory(new File("."));
+ int returnVal = jfc.showSaveDialog(view.getComponent());
+
+ if (returnVal==JFileChooser.APPROVE_OPTION)
+ {
+ String fout = jfc.getSelectedFile().getAbsolutePath();
+
+ Map<String,Set<String>> mod_nodes = new
HashMap<String,Set<String>>(1000);
+
+ for (int ni : view.getNetwork().getNodeIndicesArray())
+ {
+ Node n = Cytoscape.getRootGraph().getNode(ni);
+
+ Set<String> nodes = new HashSet<String>(1000);
+
+ for (int ni2 :
n.getNestedNetwork().getNodeIndicesArray())
+
nodes.add(String.valueOf(nodeAttr.getAttribute(Cytoscape.getRootGraph().getNode(ni2).getIdentifier(),nodeAttrName)));
+
+ mod_nodes.put(n.getIdentifier(), nodes);
+ }
+
+ try
+ {
+ BufferedWriter bw = new BufferedWriter(new
FileWriter(fout));
+
+ for (String key : mod_nodes.keySet()) {
+ bw.write(key + "\t");
+
+ Set<String> vals = mod_nodes.get(key);
+
+ boolean first = true;
+ for (String val : vals)
+ if (!first)
+ bw.write("|" + val);
+ else {
+ first = false;
+ bw.write(val);
+ }
+
+ bw.write("\n");
+ }
+
+ bw.close();
+
+ JOptionPane.showMessageDialog(null, "Modules
saved successfully.");
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null, "There was a
problem saving the modules: "+e.getMessage());
+ }
+
+ }
+
+ }
+
+ public static void saveOverviewNetwork(CyNetworkView view)
+ {
+ JFileChooser jfc = new JFileChooser();
+ jfc.setCurrentDirectory(new File("."));
+ int returnVal = jfc.showSaveDialog(view.getComponent());
+
+ if (returnVal==JFileChooser.APPROVE_OPTION)
+ {
+ String fout = jfc.getSelectedFile().getAbsolutePath();
+
+ List<EdgeView> edges = (List<EdgeView>)
view.getEdgeViewsList();
+
+ StringMatrix out = new StringMatrix(edges.size(),9);
+
+ List<String> edgeAttributes =
NestedNetworkCreator.getEdgeAttributeNames();
+
+ List<String> colNames = new ArrayList<String>(9);
+ colNames.add("NodeA");
+ colNames.add("NodeB");
+ colNames.addAll(edgeAttributes);
+ out.setColNames(colNames);
+
+ CyAttributes edgeAttr = Cytoscape.getEdgeAttributes();
+
+ int row = 0;
+ for (EdgeView ev : edges)
+ {
+ Edge e = ev.getEdge();
+
+ out.set(row, 0, e.getSource().getIdentifier());
+ out.set(row, 1, e.getTarget().getIdentifier());
+
+ for (int j=0;j<edgeAttributes.size();j++)
+ out.set(row, j+2,
edgeAttr.getAttribute(e.getIdentifier(), edgeAttributes.get(j)).toString());
+
+ row++;
+ }
+
+ try
+ {
+ //Open/Create file for writing. If no file exists
append->false
+ BufferedWriter bw = new BufferedWriter(new
FileWriter(fout));
+
+ if (out.hasColNames())
+ {
+ if (out.hasRowNames()) bw.write("\t");
+
+ bw.write(out.getColName(0));
+ for (int i=1;i<out.numCols();i++)
+ bw.write("\t" +
out.getColName(i));
+
+ bw.write("\n");
+ }
+
+ for (int i=0;i<out.numRows();i++)
+ {
+ if (out.hasRowNames())
bw.write(out.getRowName(i)+"\t");
+
+ bw.write(out.get(i,0));
+ for (int j=1;j<out.numCols();j++)
+ bw.write("\t" + out.get(i,j));
+
+ bw.write("\n");
+ }
+
+ bw.close();
+ JOptionPane.showMessageDialog(null, "Overview network
saved successfully.");
+
+ }catch (Exception e)
+ {
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null, "There was a
problem saving the overview network: "+e.getMessage());
+ }
+
+
+
+ }
+ }
+}
--
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.