Author: kono
Date: 2012-05-31 10:28:45 -0700 (Thu, 31 May 2012)
New Revision: 29411
Modified:
csplugins/trunk/ucsd/kono/PSIQUICUniversalClient/src/org/cytoscape/webservice/psicquic/PSI25VisualStyleBuilder.java
csplugins/trunk/ucsd/kono/PSIQUICUniversalClient/src/org/cytoscape/webservice/psicquic/PSICQUICUniversalClient.java
csplugins/trunk/ucsd/kono/PSIQUICUniversalClient/src/org/cytoscape/webservice/psicquic/mapper/Mitab25Mapper.java
Log:
Gene name problems are partially fixed.
Modified:
csplugins/trunk/ucsd/kono/PSIQUICUniversalClient/src/org/cytoscape/webservice/psicquic/PSI25VisualStyleBuilder.java
===================================================================
---
csplugins/trunk/ucsd/kono/PSIQUICUniversalClient/src/org/cytoscape/webservice/psicquic/PSI25VisualStyleBuilder.java
2012-05-31 16:57:05 UTC (rev 29410)
+++
csplugins/trunk/ucsd/kono/PSIQUICUniversalClient/src/org/cytoscape/webservice/psicquic/PSI25VisualStyleBuilder.java
2012-05-31 17:28:45 UTC (rev 29411)
@@ -2,7 +2,6 @@
import static cytoscape.visual.VisualPropertyType.NODE_LABEL;
import giny.view.Justification;
-import giny.view.Label;
import giny.view.Position;
import java.awt.Color;
@@ -10,15 +9,16 @@
import java.util.HashMap;
import java.util.Map;
+import org.cytoscape.webservice.psicquic.mapper.Mitab25Mapper;
+import org.omg.CORBA.PRIVATE_MEMBER;
+
import cytoscape.visual.EdgeAppearanceCalculator;
import cytoscape.visual.GlobalAppearanceCalculator;
-import cytoscape.visual.LabelPosition;
import cytoscape.visual.LineStyle;
import cytoscape.visual.NodeAppearanceCalculator;
import cytoscape.visual.NodeShape;
import cytoscape.visual.VisualPropertyType;
import cytoscape.visual.VisualStyle;
-import cytoscape.visual.calculators.AbstractCalculator;
import cytoscape.visual.calculators.BasicCalculator;
import cytoscape.visual.calculators.Calculator;
import cytoscape.visual.mappings.DiscreteMapping;
@@ -35,9 +35,14 @@
public static final String ATTR_PREFIX = "PSI-MI-25.";
// Top level interaction types
- private static final String[] ITR_TYPE_ROOT_TERMS = { "MI:0208",
"MI:0403",
- "MI:0914" };
+ private static final String[] ITR_TYPE_ROOT_TERMS = { "MI:0208",
"MI:0403", "MI:0914" };
+ // Presets
+ private static final Color OBJECT_COLOR = new Color(0, 128, 128);
+
+
+
+
private static final Map<String, String> type = new HashMap<String,
String>();
private static VisualStyle defStyle;
@@ -58,140 +63,110 @@
NodeAppearanceCalculator nac =
defStyle.getNodeAppearanceCalculator();
EdgeAppearanceCalculator eac =
defStyle.getEdgeAppearanceCalculator();
- GlobalAppearanceCalculator gac = defStyle
- .getGlobalAppearanceCalculator();
+ GlobalAppearanceCalculator gac =
defStyle.getGlobalAppearanceCalculator();
// Default values
- final int edgeOp = 160;
- final Color nodeColor = new Color(0, 128, 128);
+ final int edgeOp = 110;
+ final Color nodeColor = OBJECT_COLOR;
final Color nodeLineColor = new Color(40, 40, 40);
final Color nodeLabelColor = new Color(30, 30, 30);
final Color nodeCompoundColor = new Color(100, 100, 100);
final Color nodeNestedColor = Color.white;
-
- // final Color edgeColor = new Color(112,128,144);
- final Color edgeColor = Color.black;
- final Font nodeLabelFont = new Font("SansSerif.BOLD", 16,
Font.BOLD);
+
+ final Color edgeColor = OBJECT_COLOR;
+ final Font nodeLabelFont = new Font("Helvetica", Font.PLAIN,
14);
// final Color nodeLabelColor = new Color(105,105,105);
gac.setDefaultBackgroundColor(Color.white);
- final PassThroughMapping m = new PassThroughMapping("",
- AbstractCalculator.ID);
+ final PassThroughMapping m = new
PassThroughMapping(String.class, Mitab25Mapper.PREDICTED_GENE_NAME);
- final Calculator calc = new BasicCalculator(DEF_VS_NAME + "-"
- + "NodeLabelMapping", m, NODE_LABEL);
+ final Calculator calc = new BasicCalculator(DEF_VS_NAME + "-" +
"NodeLabelMapping", m, NODE_LABEL);
// PassThroughMapping me = new PassThroughMapping("",
ATTR_PREFIX +
// "interaction type");
//
// EdgeCalculator calce = new EdgeCalculator(DEF_VS_NAME + "-"
// + "EdgeLabelMapping", me, null, EDGE_LABEL);
nac.setCalculator(calc);
-
nac.getDefaultAppearance().set(VisualPropertyType.NODE_FILL_COLOR,
- nodeColor);
- nac.getDefaultAppearance().set(VisualPropertyType.NODE_SHAPE,
- NodeShape.RECT);
- nac.getDefaultAppearance().set(VisualPropertyType.NODE_OPACITY,
150);
-
nac.getDefaultAppearance().set(VisualPropertyType.NODE_BORDER_OPACITY,
- 220);
-
nac.getDefaultAppearance().set(VisualPropertyType.NODE_LINE_WIDTH, 3);
-
nac.getDefaultAppearance().set(VisualPropertyType.NODE_BORDER_COLOR,
- nodeLineColor);
- nac.getDefaultAppearance().set(VisualPropertyType.NODE_WIDTH,
45);
- nac.getDefaultAppearance().set(VisualPropertyType.NODE_HEIGHT,
25);
-
nac.getDefaultAppearance().set(VisualPropertyType.NODE_LABEL_COLOR,
- nodeLabelColor);
-
nac.getDefaultAppearance().set(VisualPropertyType.NODE_FONT_FACE,
- nodeLabelFont);
-
- nac.getDefaultAppearance().set(
- VisualPropertyType.NODE_LABEL_POSITION,
- new LabelPosition(Label.SOUTH, Label.NORTHWEST,
- Label.JUSTIFY_CENTER, -7, 1.0));
-
+
nac.getDefaultAppearance().set(VisualPropertyType.NODE_FILL_COLOR, nodeColor);
+ nac.getDefaultAppearance().set(VisualPropertyType.NODE_SHAPE,
NodeShape.RECT);
+ nac.getDefaultAppearance().set(VisualPropertyType.NODE_OPACITY,
120);
+
nac.getDefaultAppearance().set(VisualPropertyType.NODE_BORDER_OPACITY, 200);
+
nac.getDefaultAppearance().set(VisualPropertyType.NODE_LINE_WIDTH, 2);
+
nac.getDefaultAppearance().set(VisualPropertyType.NODE_BORDER_COLOR,
nodeLineColor);
+ nac.getDefaultAppearance().set(VisualPropertyType.NODE_WIDTH,
25);
+ nac.getDefaultAppearance().set(VisualPropertyType.NODE_HEIGHT,
15);
+
nac.getDefaultAppearance().set(VisualPropertyType.NODE_LABEL_COLOR,
nodeLabelColor);
+
nac.getDefaultAppearance().set(VisualPropertyType.NODE_FONT_FACE,
nodeLabelFont);
+
// TODO: this is for 2.8.0
-// nac.getDefaultAppearance().set(
-// VisualPropertyType.NODE_LABEL_POSITION,
-// new ObjectPositionImpl(Position.SOUTH,
Position.NORTH_WEST,
-// Justification.JUSTIFY_CENTER,
-7, 1.0));
+
nac.getDefaultAppearance().set(VisualPropertyType.NODE_LABEL_POSITION,
+ new ObjectPositionImpl(Position.SOUTH,
Position.NORTH_WEST, Justification.JUSTIFY_CENTER, -7, 1.0));
-
nac.getDefaultAppearance().set(VisualPropertyType.NODE_FONT_SIZE, 10);
+
nac.getDefaultAppearance().set(VisualPropertyType.NODE_FONT_SIZE, 14);
nac.setNodeSizeLocked(false);
-
- DiscreteMapping nodeColorMapping = new
DiscreteMapping(nodeColor,
- ATTR_PREFIX + "interactor type",
ObjectMapping.NODE_MAPPING);
+
+ DiscreteMapping nodeColorMapping = new
DiscreteMapping(nodeColor, ATTR_PREFIX + "interactor type",
+ ObjectMapping.NODE_MAPPING);
nodeColorMapping.putMapValue("compound", nodeCompoundColor);
nodeColorMapping.putMapValue("nested", nodeNestedColor);
- final Calculator nodeColorCalc = new
BasicCalculator(DEF_VS_NAME + "-"
- + "NodeColorMapping", nodeColorMapping,
+ final Calculator nodeColorCalc = new
BasicCalculator(DEF_VS_NAME + "-" + "NodeColorMapping", nodeColorMapping,
VisualPropertyType.NODE_FILL_COLOR);
nac.setCalculator(nodeColorCalc);
-
- DiscreteMapping nodeShapeMapping = new
DiscreteMapping(NodeShape.RECT,
- ATTR_PREFIX + "interactor type",
ObjectMapping.NODE_MAPPING);
+
+ DiscreteMapping nodeShapeMapping = new
DiscreteMapping(NodeShape.RECT, ATTR_PREFIX + "interactor type",
+ ObjectMapping.NODE_MAPPING);
nodeShapeMapping.putMapValue("compound", NodeShape.ELLIPSE);
nodeShapeMapping.putMapValue("nested", NodeShape.ROUND_RECT);
- final Calculator nodeShapeCalc = new
BasicCalculator(DEF_VS_NAME + "-"
- + "NodeShapeMapping", nodeShapeMapping,
+ final Calculator nodeShapeCalc = new
BasicCalculator(DEF_VS_NAME + "-" + "NodeShapeMapping", nodeShapeMapping,
VisualPropertyType.NODE_SHAPE);
nac.setCalculator(nodeShapeCalc);
-
- DiscreteMapping nodeWidthMapping = new DiscreteMapping(30,
- ATTR_PREFIX + "interactor type",
ObjectMapping.NODE_MAPPING);
+
+ DiscreteMapping nodeWidthMapping = new DiscreteMapping(30,
ATTR_PREFIX + "interactor type",
+ ObjectMapping.NODE_MAPPING);
nodeWidthMapping.putMapValue("compound", 15);
nodeWidthMapping.putMapValue("nested", 100);
- final Calculator nodeWidthCalc = new
BasicCalculator(DEF_VS_NAME + "-"
- + "NodeWidthMapping", nodeWidthMapping,
+ final Calculator nodeWidthCalc = new
BasicCalculator(DEF_VS_NAME + "-" + "NodeWidthMapping", nodeWidthMapping,
VisualPropertyType.NODE_WIDTH);
nac.setCalculator(nodeWidthCalc);
- DiscreteMapping nodeHeightMapping = new DiscreteMapping(30,
- ATTR_PREFIX + "interactor type",
ObjectMapping.NODE_MAPPING);
+ DiscreteMapping nodeHeightMapping = new DiscreteMapping(30,
ATTR_PREFIX + "interactor type",
+ ObjectMapping.NODE_MAPPING);
nodeHeightMapping.putMapValue("compound", 15);
nodeHeightMapping.putMapValue("nested", 100);
- final Calculator nodeHeightCalc = new
BasicCalculator(DEF_VS_NAME + "-"
- + "NodeHeightMapping", nodeHeightMapping,
- VisualPropertyType.NODE_HEIGHT);
+ final Calculator nodeHeightCalc = new
BasicCalculator(DEF_VS_NAME + "-" + "NodeHeightMapping",
+ nodeHeightMapping,
VisualPropertyType.NODE_HEIGHT);
nac.setCalculator(nodeHeightCalc);
-
-
// eac.setCalculator(calce);
- eac.getDefaultAppearance()
- .set(VisualPropertyType.EDGE_COLOR, edgeColor);
-
eac.getDefaultAppearance().set(VisualPropertyType.EDGE_LABEL_COLOR,
- Color.red);
+ eac.getDefaultAppearance().set(VisualPropertyType.EDGE_COLOR,
edgeColor);
+
eac.getDefaultAppearance().set(VisualPropertyType.EDGE_LABEL_COLOR, Color.red);
eac.getDefaultAppearance().set(VisualPropertyType.EDGE_FONT_SIZE, 5);
eac.getDefaultAppearance().set(VisualPropertyType.EDGE_OPACITY,
edgeOp);
- eac.getDefaultAppearance().set(
- VisualPropertyType.EDGE_SRCARROW_OPACITY,
edgeOp);
- eac.getDefaultAppearance().set(
- VisualPropertyType.EDGE_TGTARROW_OPACITY,
edgeOp);
+
eac.getDefaultAppearance().set(VisualPropertyType.EDGE_SRCARROW_OPACITY,
edgeOp);
+
eac.getDefaultAppearance().set(VisualPropertyType.EDGE_TGTARROW_OPACITY,
edgeOp);
//
eac.getDefaultAppearance().set(VisualPropertyType.EDGE_LABEL_OPACITY,
// 80);
eac.getDefaultAppearance().set(VisualPropertyType.EDGE_LINE_WIDTH, 1);
eac.getDefaultAppearance().set(VisualPropertyType.EDGE_LABEL,
"");
// Interaction Type mapping
- DiscreteMapping lineStyle = new DiscreteMapping(LineStyle.SOLID,
- ATTR_PREFIX + "interaction type",
ObjectMapping.EDGE_MAPPING);
- DiscreteMapping lineWidth = new DiscreteMapping(1.0, ATTR_PREFIX
- + "interaction type",
ObjectMapping.EDGE_MAPPING);
- DiscreteMapping edgeColorMap = new DiscreteMapping(Color.black,
- ATTR_PREFIX + "interaction type",
ObjectMapping.EDGE_MAPPING);
+ DiscreteMapping lineStyle = new
DiscreteMapping(LineStyle.SOLID, ATTR_PREFIX + "interaction type",
+ ObjectMapping.EDGE_MAPPING);
+ DiscreteMapping lineWidth = new DiscreteMapping(1.0,
ATTR_PREFIX + "interaction type",
+ ObjectMapping.EDGE_MAPPING);
+ DiscreteMapping edgeColorMap = new DiscreteMapping(Color.black,
ATTR_PREFIX + "interaction type",
+ ObjectMapping.EDGE_MAPPING);
generateInteractionTypeMap(lineStyle, lineWidth, edgeColorMap);
- final Calculator lineStyleCalc = new
BasicCalculator(DEF_VS_NAME + "-"
- + "EdgeLineStyleMapping", lineStyle,
+ final Calculator lineStyleCalc = new
BasicCalculator(DEF_VS_NAME + "-" + "EdgeLineStyleMapping", lineStyle,
VisualPropertyType.EDGE_LINE_STYLE);
- final Calculator lineWidthCalc = new
BasicCalculator(DEF_VS_NAME + "-"
- + "EdgeLineWidthMapping", lineWidth,
+ final Calculator lineWidthCalc = new
BasicCalculator(DEF_VS_NAME + "-" + "EdgeLineWidthMapping", lineWidth,
VisualPropertyType.EDGE_LINE_WIDTH);
- final Calculator edgeColorCalc = new
BasicCalculator(DEF_VS_NAME + "-"
- + "EdgeColorMapping", edgeColorMap,
+ final Calculator edgeColorCalc = new
BasicCalculator(DEF_VS_NAME + "-" + "EdgeColorMapping", edgeColorMap,
VisualPropertyType.EDGE_COLOR);
//
@@ -233,8 +208,8 @@
return defStyle;
}
- private static void generateInteractionTypeMap(DiscreteMapping
lineStyle,
- DiscreteMapping lineWidth, DiscreteMapping edgeColor) {
+ private static void generateInteractionTypeMap(DiscreteMapping
lineStyle, DiscreteMapping lineWidth,
+ DiscreteMapping edgeColor) {
// TODO Auto-generated method stub
// for (String childTerm : type.keySet()) {
// if ((type.get(childTerm)).equals("MI:0208")) {
Modified:
csplugins/trunk/ucsd/kono/PSIQUICUniversalClient/src/org/cytoscape/webservice/psicquic/PSICQUICUniversalClient.java
===================================================================
---
csplugins/trunk/ucsd/kono/PSIQUICUniversalClient/src/org/cytoscape/webservice/psicquic/PSICQUICUniversalClient.java
2012-05-31 16:57:05 UTC (rev 29410)
+++
csplugins/trunk/ucsd/kono/PSIQUICUniversalClient/src/org/cytoscape/webservice/psicquic/PSICQUICUniversalClient.java
2012-05-31 17:28:45 UTC (rev 29411)
@@ -41,18 +41,14 @@
import cytoscape.visual.VisualMappingManager;
import cytoscape.visual.VisualStyle;
-public class PSICQUICUniversalClient extends
- WebServiceClientImplWithGUI<PSICQUICServiceRegistory, JPanel>
implements
+public class PSICQUICUniversalClient extends
WebServiceClientImplWithGUI<PSICQUICServiceRegistory, JPanel> implements
NetworkImportWebServiceClient {
private static final long serialVersionUID = 4485772700287524894L;
- private static final String[] IMPORT_MODE = { "Detection Method",
- "Interaction ID" };
- private static final String[] IMPORT_DATA_FORMAT = { "MITAB25",
- "PSI-MI XML 2.5" };
- private static final String[] SEARCH_MODE = { "Interactor ID(s)",
"Query",
- "Interaction ID(s)", "Pipeline" };
+ private static final String[] IMPORT_MODE = { "Detection Method",
"Interaction ID" };
+ private static final String[] IMPORT_DATA_FORMAT = { "MITAB25", "PSI-MI
XML 2.5" };
+ private static final String[] SEARCH_MODE = { "Interactor ID(s)",
"Query", "Interaction ID(s)", "Pipeline" };
private enum Mode {
SEARCH, IMPORT;
@@ -72,15 +68,12 @@
props = new ModulePropertiesImpl(clientID, "wsc");
// General setting
- props.add(new Tunable("block_size", "Block Size",
Tunable.INTEGER,
- Integer.valueOf(100)));
- props.add(new Tunable("timeout", "Timeout (sec.)",
Tunable.INTEGER,
- new Integer(6000)));
+ props.add(new Tunable("block_size", "Block Size",
Tunable.INTEGER, Integer.valueOf(100)));
+ props.add(new Tunable("timeout", "Timeout (sec.)",
Tunable.INTEGER, new Integer(6000)));
- final String[] modeArray = { QueryMode.GET_BY_INTERACTOR.name(),
- QueryMode.GET_BY_QUERY.toString() };
- props.add(new Tunable("query_mode", "Query Mode", Tunable.LIST,
- Integer.valueOf(0), (Object) modeArray,
(Object) null, 0));
+ final String[] modeArray = {
QueryMode.GET_BY_INTERACTOR.name(), QueryMode.GET_BY_QUERY.toString() };
+ props.add(new Tunable("query_mode", "Query Mode", Tunable.LIST,
Integer.valueOf(0), (Object) modeArray,
+ (Object) null, 0));
}
@@ -103,26 +96,25 @@
private Map<URI, QueryResponse> sResult;
private List<DbRef> queryList;
private String query;
-
+
private final ServiceState states;
static {
try {
client = new PSICQUICUniversalClient();
} catch (Exception e) {
- CyLogger.getLogger().error("Could not initialize
PSICQUIC Client.",
- e);
+ CyLogger.getLogger().error("Could not initialize
PSICQUIC Client.", e);
}
}
private PSICQUICUniversalClient() throws Exception {
- super(CLIENT_ID, DISPLAY_NAME, new ClientType[] {
ClientType.NETWORK },
- null, new PSICQUICServiceRegistory(), null);
+ super(CLIENT_ID, DISPLAY_NAME, new ClientType[] {
ClientType.NETWORK }, null, new PSICQUICServiceRegistory(),
+ null);
setDescription();
// Set properties for this client.
setProperty();
-
+
this.states = new ServiceState(((PSICQUICServiceRegistory)
clientStub));
}
@@ -136,15 +128,14 @@
}
@Override
- public void executeService(CyWebServiceEvent e)
- throws CyWebServiceException {
+ public void executeService(CyWebServiceEvent e) throws
CyWebServiceException {
if (e.getSource().equals(CLIENT_ID)) {
if
(e.getEventType().equals(WSEventType.IMPORT_NETWORK)) {
SearchResultDialog searchResultDialog = new
SearchResultDialog(Cytoscape.getDesktop(), states);
searchResultDialog.setVisible(true);
Set<String> selected =
searchResultDialog.getSelected();
-
+
importNetwork(selected, null);
} else if
(e.getEventType().equals(WSEventType.EXPAND_NETWORK)) {
SearchResultDialog searchResultDialog = new
SearchResultDialog(Cytoscape.getDesktop(), states);
@@ -158,8 +149,7 @@
}
- private void search(String queryString, CyWebServiceEvent<?> e)
- throws CyWebServiceException {
+ private void search(String queryString, CyWebServiceEvent<?> e) throws
CyWebServiceException {
final PSICQUICServiceRegistory searchClient =
((PSICQUICServiceRegistory) clientStub);
sResult = null;
@@ -189,8 +179,7 @@
} catch (Exception ex) {
ex.printStackTrace();
- throw new CyWebServiceException(
-
CyWebServiceException.WSErrorCode.REMOTE_EXEC_FAILED);
+ throw new
CyWebServiceException(CyWebServiceException.WSErrorCode.REMOTE_EXEC_FAILED);
}
if (sResult == null)
@@ -206,27 +195,24 @@
states.setRecentResultCount(states.getName(key.toString()), count);
total = total +
sResult.get(key).getResultInfo().getTotalResults();
}
-
+
Cytoscape.firePropertyChange(SEARCH_FINISHED.toString(),
this.clientID,
- new DatabaseSearchResult<Map<URI,
QueryResponse>>(total,
- sResult, nextMove));
+ new DatabaseSearchResult<Map<URI,
QueryResponse>>(total, sResult, nextMove));
}
- private void importNetwork(Set<String> selected, CyNetwork e)
- throws CyWebServiceException {
-
- if(selected == null || selected.size() == 0)
+ private void importNetwork(Set<String> selected, CyNetwork e) throws
CyWebServiceException {
+
+ if (selected == null || selected.size() == 0)
return;
PSICQUICServiceRegistory importClient =
((PSICQUICServiceRegistory) clientStub);
- for(URI uri:importClient.getServiceNames().keySet()) {
+ for (URI uri : importClient.getServiceNames().keySet()) {
String name = importClient.getServiceNames().get(uri);
- if(selected.contains(name) == false)
+ if (selected.contains(name) == false)
importClient.skip.add(uri);
}
-
-
+
Map<URI, List<QueryResponse>> importResult = null;
final RequestInfo info = new RequestInfo();
@@ -235,15 +221,13 @@
try {
if (queryList != null) {
// Use OR as operand
- importResult =
importClient.getByInteractorList(queryList,
- info, "OR");
+ importResult =
importClient.getByInteractorList(queryList, info, "OR");
} else {
importResult = importClient.getByQuery(query,
info);
}
} catch (Exception ex) {
ex.printStackTrace();
- throw new CyWebServiceException(
-
CyWebServiceException.WSErrorCode.REMOTE_EXEC_FAILED);
+ throw new
CyWebServiceException(CyWebServiceException.WSErrorCode.REMOTE_EXEC_FAILED);
}
if (importResult == null)
@@ -259,14 +243,13 @@
if (importClient.isEmpty(name))
continue;
else {
- netName = nameMap.get(name);
- defNetworkNames.add(netName);
- newNameMap.put(name, netName);
+ netName = nameMap.get(name);
+ defNetworkNames.add(netName);
+ newNameMap.put(name, netName);
}
}
- final ResultDialog report = new
ResultDialog(Cytoscape.getDesktop(),
- true, newNameMap);
+ final ResultDialog report = new
ResultDialog(Cytoscape.getDesktop(), true, newNameMap);
report.setLocationRelativeTo(Cytoscape.getDesktop());
report.setVisible(true);
report.setModal(true);
@@ -275,17 +258,16 @@
List<CyNetwork> target = new ArrayList<CyNetwork>();
// Create parent empty network
- String parentName = "PSICQUIC Query Results";
- String postfix = ": " + time.toString();
- if (query != null)
- postfix = postfix+" (" + query + ")";
-
+ String parentName = "PSICQUIC Search Results";
+ final String timeCreated = time.toString();
+ String postfix = ": " + timeCreated;
parentName = parentName + postfix;
-
+
newNameMap = report.getNewNames();
- final CyNetwork parentNetwork =
Cytoscape.createNetwork(parentName,
- false);
+ final CyNetwork parentNetwork =
Cytoscape.createNetwork(parentName, false);
+
Cytoscape.getNetworkAttributes().setAttribute(parentNetwork.getIdentifier(),
"query string", query);
+
Cytoscape.getNetworkAttributes().setAttribute(parentNetwork.getIdentifier(),
"date created", timeCreated);
for (URI key : importResult.keySet()) {
@@ -294,8 +276,7 @@
for (QueryResponse qr : res) {
builder.append(qr.getResultSet().getMitab());
}
- final CyNetwork net = mapper.map(builder.toString(),
newNameMap
- .get(key), parentNetwork);
+ final CyNetwork net = mapper.map(builder.toString(),
newNameMap.get(key), parentNetwork);
if (net != null)
target.add(net);
}
@@ -304,22 +285,21 @@
if
(vmm.getCalculatorCatalog().getVisualStyle(defaultVS.getName()) == null)
vmm.getCalculatorCatalog().addVisualStyle(defaultVS);
-
// Use nested network feature
final CyNode centerNode = Cytoscape.getCyNode(parentName, true);
parentNetwork.addNode(centerNode);
-
+
for (CyNetwork net : target) {
vmm.setVisualStyle(defaultVS);
- final CyNetworkView targetView =
Cytoscape.getNetworkView(net
- .getIdentifier());
+ final CyNetworkView targetView =
Cytoscape.getNetworkView(net.getIdentifier());
targetView.setVisualStyle(defaultVS.getName());
targetView.redrawGraph(true, false);
CyNode nestedNode = Cytoscape.getCyNode(net.getTitle(),
true);
nestedNode.setNestedNetwork(net);
-
-
Cytoscape.getNodeAttributes().setAttribute(nestedNode.getIdentifier(),
PSI25VisualStyleBuilder.ATTR_PREFIX + "interactor type", "nested");
-
+
+
Cytoscape.getNodeAttributes().setAttribute(nestedNode.getIdentifier(),
+ PSI25VisualStyleBuilder.ATTR_PREFIX +
"interactor type", "nested");
+
parentNetwork.addNode(nestedNode);
parentNetwork.addEdge(Cytoscape.getCyEdge(nestedNode,
centerNode, "interaction", "query_result", true));
}
@@ -339,19 +319,16 @@
private void displayNetworkMerge() {
Class<?> advancedNetworkMergeClass;
try {
- advancedNetworkMergeClass = Class
-
.forName("csplugins.network.merge.NetworkMergePlugin");
+ advancedNetworkMergeClass =
Class.forName("csplugins.network.merge.NetworkMergePlugin");
} catch (ClassNotFoundException e1) {
- CyLogger.getLogger().warn(
- "Could not find Advanced Network Merge
Plugin!", e1);
+ CyLogger.getLogger().warn("Could not find Advanced
Network Merge Plugin!", e1);
e1.printStackTrace();
return;
}
Method actionPerformedMethod;
try {
- actionPerformedMethod = advancedNetworkMergeClass
- .getMethod("invokeAction");
+ actionPerformedMethod =
advancedNetworkMergeClass.getMethod("invokeAction");
} catch (SecurityException e2) {
e2.printStackTrace();
return;
@@ -389,9 +366,9 @@
}
return interactorList;
}
-
+
public void getLatestSearchResult() {
-
+
}
}
Modified:
csplugins/trunk/ucsd/kono/PSIQUICUniversalClient/src/org/cytoscape/webservice/psicquic/mapper/Mitab25Mapper.java
===================================================================
---
csplugins/trunk/ucsd/kono/PSIQUICUniversalClient/src/org/cytoscape/webservice/psicquic/mapper/Mitab25Mapper.java
2012-05-31 16:57:05 UTC (rev 29410)
+++
csplugins/trunk/ucsd/kono/PSIQUICUniversalClient/src/org/cytoscape/webservice/psicquic/mapper/Mitab25Mapper.java
2012-05-31 17:28:45 UTC (rev 29411)
@@ -22,6 +22,8 @@
private static final CyLogger logger = CyLogger.getLogger();
+ public static final String PREDICTED_GENE_NAME = "predicted gene name";
+
// Separator for multiple entries.
private static final String SEPARATOR = "\\|";
private static final String TAB = "\t";
@@ -38,18 +40,19 @@
final CyAttributes nodeAttr;
final CyAttributes edgeAttr;
final CyAttributes networkAttr;
-
+
private static final String INTERACTION = "interaction";
-
+
// Reg.Ex for parsing entry
private final static Pattern miPttr = Pattern.compile("MI:\\d{4}");
private final static Pattern miNamePttr = Pattern.compile("\\(.+\\)");
-
+
private final static Pattern lineSplitter = Pattern.compile(TAB);
private final static Pattern entrySplitter = Pattern.compile(SEPARATOR);
private final static Pattern dbSplitter = Pattern.compile(DB_ID);
private final static Pattern descriptionSpliter =
Pattern.compile("\\(");
-
+ private final static Pattern ncbiPattern =
Pattern.compile("^[A-Za-z].+");
+ private final static Pattern uniprotPattern =
Pattern.compile("^[a-zA-Z]\\d.+");
// Attr Names
private static final String DETECTION_METHOD = ATTR_PREFIX +
"interaction detection method";
private static final String INTERACTION_TYPE = ATTR_PREFIX +
"interaction type";
@@ -62,6 +65,8 @@
private static final String ENTREZ_GENE = "entrezgene/locuslink";
private static final String ENTREZ_GENE_SYN = "entrez gene/locuslink";
+ private static final String ENTREZ_GENE_ATTR_NAME = ATTR_PREFIX +
ENTREZ_GENE;
+ private static final String UNIPROT_ATTR_NAME = ATTR_PREFIX +
"uniprotkb";
private static final String CHEBI = "chebi";
private static final String INTERACTOR_TYPE = ATTR_PREFIX + "interactor
type";
@@ -127,68 +132,71 @@
}
private final void parseLine(final String line) throws Exception {
- final String[] entry = lineSplitter.split(line);
+ final String[] entry = lineSplitter.split(line);
- // Validate entry list.
- if (entry == null || entry.length < COLUMN_COUNT)
- return;
+ // Validate entry list.
+ if (entry == null || entry.length < COLUMN_COUNT)
+ return;
- // Create nodes
- final String[] sourceID = entrySplitter.split(entry[0]);
- final String[] targetID = entrySplitter.split(entry[1]);
+ // Create nodes
+ final String[] sourceID = entrySplitter.split(entry[0]);
+ final String[] targetID = entrySplitter.split(entry[1]);
- String[] keyIDPparts = dbSplitter.split(sourceID[0]);
- final String firstSourceID = keyIDPparts[1];
- final String firstSourceDB = keyIDPparts[0];
-
- keyIDPparts = dbSplitter.split(targetID[0]);
- final String firstTargetID = keyIDPparts[1];
- final String firstTargetDB = keyIDPparts[0];
-
- final CyNode source =
Cytoscape.getCyNode(firstSourceID, true);
- final CyNode target =
Cytoscape.getCyNode(firstTargetID, true);
- nodeAttr.setAttribute(source.getIdentifier(),
ATTR_PREFIX + "primaryKey." + firstSourceDB, firstSourceID);
- nodeAttr.setAttribute(target.getIdentifier(),
ATTR_PREFIX + "primaryKey." + firstTargetDB, firstTargetID);
- nodes.add(source);
- nodes.add(target);
+ String[] keyIDPparts = dbSplitter.split(sourceID[0]);
+ final String firstSourceID = keyIDPparts[1];
+ final String firstSourceDB = keyIDPparts[0];
- // Set type if not protein
- if (source.getIdentifier().contains(CHEBI))
- nodeAttr.setAttribute(source.getIdentifier(),
INTERACTOR_TYPE, COMPOUND);
- if (target.getIdentifier().contains(CHEBI))
- nodeAttr.setAttribute(target.getIdentifier(),
INTERACTOR_TYPE, COMPOUND);
+ keyIDPparts = dbSplitter.split(targetID[0]);
+ final String firstTargetID = keyIDPparts[1];
+ final String firstTargetDB = keyIDPparts[0];
- // Aliases
- setAliases(nodeAttr, source.getIdentifier(), sourceID);
- setAliases(nodeAttr, target.getIdentifier(), targetID);
- setAliases(nodeAttr, source.getIdentifier(),
entrySplitter.split(entry[2]));
- setAliases(nodeAttr, target.getIdentifier(),
entrySplitter.split(entry[3]));
- setAliases(nodeAttr, source.getIdentifier(),
entrySplitter.split(entry[4]));
- setAliases(nodeAttr, target.getIdentifier(),
entrySplitter.split(entry[5]));
+ final CyNode source = Cytoscape.getCyNode(firstSourceID, true);
+ final CyNode target = Cytoscape.getCyNode(firstTargetID, true);
+ nodeAttr.setAttribute(source.getIdentifier(), ATTR_PREFIX +
"primaryKey." + firstSourceDB, firstSourceID);
+ nodeAttr.setAttribute(target.getIdentifier(), ATTR_PREFIX +
"primaryKey." + firstTargetDB, firstTargetID);
+ nodes.add(source);
+ nodes.add(target);
- // Tax ID (pick first one only)
- setTaxID(nodeAttr, source.getIdentifier(),
entrySplitter.split(entry[9])[0]);
- setTaxID(nodeAttr, target.getIdentifier(),
entrySplitter.split(entry[10])[0]);
+ // Set type if not protein
+ if (source.getIdentifier().contains(CHEBI))
+ nodeAttr.setAttribute(source.getIdentifier(),
INTERACTOR_TYPE, COMPOUND);
+ if (target.getIdentifier().contains(CHEBI))
+ nodeAttr.setAttribute(target.getIdentifier(),
INTERACTOR_TYPE, COMPOUND);
- final String[] sourceDB =
entrySplitter.split(entry[12]);
- final String[] interactionID =
entrySplitter.split(entry[13]);
+ // Aliases
+ setAliases(nodeAttr, source.getIdentifier(), sourceID);
+ setAliases(nodeAttr, target.getIdentifier(), targetID);
+ setAliases(nodeAttr, source.getIdentifier(),
entrySplitter.split(entry[2]));
+ setAliases(nodeAttr, target.getIdentifier(),
entrySplitter.split(entry[3]));
+ setAliases(nodeAttr, source.getIdentifier(),
entrySplitter.split(entry[4]));
+ setAliases(nodeAttr, target.getIdentifier(),
entrySplitter.split(entry[5]));
- final String[] edgeScores =
entrySplitter.split(entry[14]);
+ // Tax ID (pick first one only)
+ setTaxID(nodeAttr, source.getIdentifier(),
entrySplitter.split(entry[9])[0]);
+ setTaxID(nodeAttr, target.getIdentifier(),
entrySplitter.split(entry[10])[0]);
- final String[] detectionMethods =
entrySplitter.split(entry[6]);
- final String[] interactionType =
entrySplitter.split(entry[11]);
- final CyEdge e = Cytoscape.getCyEdge(source, target,
INTERACTION, interactionID[0], true);
- edges.add(e);
+ final String[] sourceDB = entrySplitter.split(entry[12]);
+ final String[] interactionID = entrySplitter.split(entry[13]);
- setEdgeListAttribute(edgeAttr, e.getIdentifier(),
interactionType, INTERACTION_TYPE);
- setEdgeListAttribute(edgeAttr, e.getIdentifier(),
detectionMethods, DETECTION_METHOD);
- setEdgeListAttribute(edgeAttr, e.getIdentifier(),
sourceDB, SOURCE_DB);
+ final String[] edgeScores = entrySplitter.split(entry[14]);
- // Map scores
- setEdgeScoreListAttribute(edgeAttr, e.getIdentifier(),
edgeScores, EDGE_SCORE);
+ final String[] detectionMethods = entrySplitter.split(entry[6]);
+ final String[] interactionType = entrySplitter.split(entry[11]);
+ final CyEdge e = Cytoscape.getCyEdge(source, target,
INTERACTION, interactionID[0], true);
+ edges.add(e);
- edgeAttr.setAttribute(e.getIdentifier(),
INTERACTION_ID, interactionID[0]);
- setPublication(edgeAttr, e.getIdentifier(),
entrySplitter.split(entry[8]), entrySplitter.split(entry[7]));
+ setEdgeListAttribute(edgeAttr, e.getIdentifier(),
interactionType, INTERACTION_TYPE);
+ setEdgeListAttribute(edgeAttr, e.getIdentifier(),
detectionMethods, DETECTION_METHOD);
+ setEdgeListAttribute(edgeAttr, e.getIdentifier(), sourceDB,
SOURCE_DB);
+
+ // Map scores
+ setEdgeScoreListAttribute(edgeAttr, e.getIdentifier(),
edgeScores, EDGE_SCORE);
+
+ edgeAttr.setAttribute(e.getIdentifier(), INTERACTION_ID,
interactionID[0]);
+ setPublication(edgeAttr, e.getIdentifier(),
entrySplitter.split(entry[8]), entrySplitter.split(entry[7]));
+
+ guessHumanReadableName(source);
+ guessHumanReadableName(target);
}
private void setTaxID(CyAttributes attr, String id, String value) {
@@ -258,10 +266,9 @@
}
}
-
-
/**
* Create edge score attribute as Double
+ *
* @param attr
* @param id
* @param scores
@@ -329,4 +336,43 @@
return miName;
}
+ private void guessHumanReadableName(CyNode node) {
+ final String id = node.getIdentifier();
+ // try NCBI
+ final List<String> ncbiList = nodeAttr.getListAttribute(id,
ENTREZ_GENE_ATTR_NAME);
+ String candidateString = null;
+ if (ncbiList != null) {
+ for (final String geneID : ncbiList) {
+ if (ncbiPattern.matcher(geneID).find()) {
+ candidateString = geneID;
+ break;
+ }
+ }
+ if (candidateString != null) {
+ nodeAttr.setAttribute(id, PREDICTED_GENE_NAME,
candidateString);
+ return;
+ }
+ }
+
+ // Try Uniprot
+ final List<String> uniprotList = nodeAttr.getListAttribute(id,
UNIPROT_ATTR_NAME);
+ if (uniprotList != null) {
+ for (final String geneID : uniprotList) {
+ if (uniprotPattern.matcher(geneID).find() ==
false) {
+ candidateString = geneID;
+ break;
+ }
+ }
+ if (candidateString != null) {
+ nodeAttr.setAttribute(id, PREDICTED_GENE_NAME,
candidateString);
+ return;
+ }
+ }
+
+ // TODO: try String
+
+ // Give up. Use primary key
+ nodeAttr.setAttribute(id, PREDICTED_GENE_NAME,
node.getIdentifier());
+ }
+
}
--
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.