Author: kono
Date: 2011-12-13 13:53:34 -0800 (Tue, 13 Dec 2011)
New Revision: 27781
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/loadnetwork/LoadNetworkFileTask.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/loadnetwork/LoadNetworkFileTaskFactoryImpl.java
core3/impl/trunk/property-impl/src/main/resources/bookmarks.xml
core3/impl/trunk/psi-mi-impl/src/main/java/org/cytoscape/psi_mi/internal/data_mapper/MapPsiTwoFiveToInteractions.java
core3/impl/trunk/psi-mi-impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewReader.java
core3/impl/trunk/psi-mi-impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewTaskFactory.java
core3/impl/trunk/psi-mi-impl/src/test/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewReaderTest.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/CyActivator.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/WelcomeScreenAction.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/welcomescreen/CreateNewNetworkPanel.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/welcomescreen/WelcomeScreenDialog.java
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/task/SwingTaskMonitor.java
Log:
fixes #532 Now this reader can read HPRD PSI-MI files. Also, minot bugs had
been fixed in the PSI-MI reader.
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/loadnetwork/LoadNetworkFileTask.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/loadnetwork/LoadNetworkFileTask.java
2011-12-13 18:19:41 UTC (rev 27780)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/loadnetwork/LoadNetworkFileTask.java
2011-12-13 21:53:34 UTC (rev 27781)
@@ -69,7 +69,6 @@
throw new NullPointerException("Failed to find
appropriate reader for file: " + file);
uri = file.toURI();
-
name = file.getName();
loadNetwork(reader);
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/loadnetwork/LoadNetworkFileTaskFactoryImpl.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/loadnetwork/LoadNetworkFileTaskFactoryImpl.java
2011-12-13 18:19:41 UTC (rev 27780)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/loadnetwork/LoadNetworkFileTaskFactoryImpl.java
2011-12-13 21:53:34 UTC (rev 27781)
@@ -65,6 +65,7 @@
}
public TaskIterator createTaskIterator() {
- return new TaskIterator(new LoadNetworkFileTask(mgr, netmgr,
networkViewManager, props, cyNetworkNaming));
+ // Load, visualize, and layout.
+ return new TaskIterator(3, new LoadNetworkFileTask(mgr, netmgr,
networkViewManager, props, cyNetworkNaming));
}
}
Modified: core3/impl/trunk/property-impl/src/main/resources/bookmarks.xml
===================================================================
--- core3/impl/trunk/property-impl/src/main/resources/bookmarks.xml
2011-12-13 18:19:41 UTC (rev 27780)
+++ core3/impl/trunk/property-impl/src/main/resources/bookmarks.xml
2011-12-13 21:53:34 UTC (rev 27781)
@@ -337,24 +337,18 @@
</category>
</category>
<category name="network">
- <dataSource name="Yeast Protein-Protein: Ideker, T. et al.
(galFiltered.sif)"
-
xlink:href="http://chianti.ucsd.edu/kono/data/galFiltered.sif"
+ <dataSource name="Yeast Protein-Protein: Ideker, T. et al. (362
Interactions, galFiltered.sif)"
+
xlink:href="http://www.cytoscape.org/datasets/galFiltered.sif"
format="sif" />
- <dataSource name="Human Protein-Protein: HPRD Literature
Curated Interactions"
- xlink:href="http://cytoscape.org/datasets/HPRD.sif"
- format="sif" />
+ <dataSource name="Human Protein-Protein: HPRD (62226
Interactions w/annotations, Rev. 4/12/2010)"
+
xlink:href="http://www.cytoscape.org/datasets/HPRD_SINGLE_PSIMI_041210.xml"
+ format="psimi25" />
<dataSource name="Human Protein-Protein: Rual et al. Toward a
proteome-scale map of the human protein-protein interaction network. Nature
2005."
xlink:href="http://cytoscape.org/datasets/rual.sif"
format="sif" />
<dataSource name="Human Protein-Protein: Rual et al.
(Subnetwork for tutorial)"
xlink:href="http://www.cytoscape.org/tut/getting.started/RUAL.subset.sif"
format="sif" />
- <dataSource name="Human Protein-Protein: Stelzl et al. A human
protein-protein interaction network: a resource for annotating the proteome.
Cell 2005."
- xlink:href="http://cytoscape.org/datasets/stelzl.sif"
- format="sif" />
- <dataSource name="Yeast Protein-Protein: Ptacek et al. Global
analysis of protein phosphorylation in yeast. Nature 2005"
- xlink:href="http://cytoscape.org/datasets/ptacek.sif"
- format="sif" />
</category>
<category name="table">
Modified:
core3/impl/trunk/psi-mi-impl/src/main/java/org/cytoscape/psi_mi/internal/data_mapper/MapPsiTwoFiveToInteractions.java
===================================================================
---
core3/impl/trunk/psi-mi-impl/src/main/java/org/cytoscape/psi_mi/internal/data_mapper/MapPsiTwoFiveToInteractions.java
2011-12-13 18:19:41 UTC (rev 27780)
+++
core3/impl/trunk/psi-mi-impl/src/main/java/org/cytoscape/psi_mi/internal/data_mapper/MapPsiTwoFiveToInteractions.java
2011-12-13 21:53:34 UTC (rev 27781)
@@ -59,6 +59,8 @@
import org.cytoscape.psi_mi.internal.schema.mi25.NamesType;
import org.cytoscape.psi_mi.internal.schema.mi25.ParticipantType;
import org.cytoscape.psi_mi.internal.schema.mi25.XrefType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
@@ -68,21 +70,28 @@
* @author Nisha Vinod
*/
public class MapPsiTwoFiveToInteractions implements Mapper {
- private HashMap<String, InteractorElementType> interactorMap;
- private Map<String, ExperimentType> experimentMap;
- private List<Interaction> interactions;
- private String xml;
- private static final boolean DEBUG = false;
+
+ private static final Logger logger =
LoggerFactory.getLogger(MapPsiTwoFiveToInteractions.class);
+
+ private final Map<String, InteractorElementType> interactorMap;
+ private final Map<String, ExperimentType> experimentMap;
+
+ private final List<Interaction> interactions;
+ private final String xml;
+
/**
* Constructor.
*
- * @param xml XML Document.
+ * @param xml XML Document.
* @param interactions ArrayList of Interaction objects.
*/
- public MapPsiTwoFiveToInteractions(String xml, List<Interaction>
interactions) {
+ public MapPsiTwoFiveToInteractions(final String xml, final
List<Interaction> interactions) {
this.xml = xml;
this.interactions = interactions;
+
+ interactorMap = new HashMap<String, InteractorElementType>();
+ experimentMap = new HashMap<String, ExperimentType>();
}
/**
@@ -90,46 +99,57 @@
*
* @throws MapperException Problem Performing mapping.
*/
+ @Override
public void doMapping() throws MapperException {
parseXml(xml);
}
/**
* Parses the PSI XML Document.
+ * @throws MapperException
*/
- private void parseXml(String content) throws MapperException {
- try {
- interactorMap = new HashMap<String,
InteractorElementType>();
- experimentMap = new HashMap<String, ExperimentType>();
+ private void parseXml(final String xml) throws MapperException {
- StringReader reader = new StringReader(content);
- JAXBContext jc =
JAXBContext.newInstance(MapInteractionsToPsiTwoFive.SCHEMA_NAMESPACE,
getClass().getClassLoader());
- Unmarshaller u = jc.createUnmarshaller();
+ final StringReader reader = new StringReader(xml);
- EntrySet entrySet = (EntrySet) u.unmarshal(reader);
- int entryCount = entrySet.getEntry().size();
+ JAXBContext jc = null;
+ try {
+ jc =
JAXBContext.newInstance(MapInteractionsToPsiTwoFive.SCHEMA_NAMESPACE, getClass()
+ .getClassLoader());
+ } catch (JAXBException e) {
+ logger.error("Could not create JAXBContext", e);
+ }
+
+ Unmarshaller u = null;
+ try {
+ u = jc.createUnmarshaller();
+ } catch (JAXBException e) {
+ logger.error("Could not create Unmarshaller", e);
+ }
- for (int i = 0; i < entryCount; i++) {
- EntrySet.Entry entry =
entrySet.getEntry().get(i);
- extractEntry(entry);
- }
+ EntrySet entrySet = null;
+ try {
+ entrySet = (EntrySet) u.unmarshal(reader);
} catch (JAXBException e) {
- throw new MapperException(e, "PSI-MI XML File is
invalid: " + e.getMessage());
+ logger.error("unmarshal operation failed", e);
}
+
+ final int entryCount = entrySet.getEntry().size();
+ for (int i = 0; i < entryCount; i++)
+ extractEntry(entrySet.getEntry().get(i));
}
/**
* Extracts PSI Entry Root Element.
*/
private void extractEntry(EntrySet.Entry entry) throws MapperException {
- EntrySet.Entry.ExperimentList expList =
entry.getExperimentList();
+ final EntrySet.Entry.ExperimentList expList =
entry.getExperimentList();
extractExperimentList(expList);
- EntrySet.Entry.InteractorList interactorList =
entry.getInteractorList();
-
+ final EntrySet.Entry.InteractorList interactorList =
entry.getInteractorList();
extractInteractorList(interactorList);
- EntrySet.Entry.InteractionList interactionList =
entry.getInteractionList();
+ final EntrySet.Entry.InteractionList interactionList =
entry.getInteractionList();
extractInteractionList(interactionList);
}
@@ -137,68 +157,57 @@
* Extracts Experiment List, and places into HashMap.
*/
private void extractExperimentList(EntrySet.Entry.ExperimentList
expList) {
- log("Extracting Experiment List: Start");
-
- if (expList != null) {
- int count = expList.getExperimentDescription().size();
-
+ if(expList != null) {
+ final int count =
expList.getExperimentDescription().size();
for (int i = 0; i < count; i++) {
- ExperimentType expType =
expList.getExperimentDescription().get(i);
- String id = "" + expType.getId();
- experimentMap.put(id, expType);
+ final ExperimentType expType =
expList.getExperimentDescription().get(i);
+
experimentMap.put(Integer.toString(expType.getId()), expType);
}
}
-
- log("Extracting Experiment List: End");
}
/**
* Extracts PSI InteractorList, and places into HashMap.
*/
private void extractInteractorList(EntrySet.Entry.InteractorList
interactorList) {
- log("Extracting Interactor List: Start");
+ logger.debug("Extracting Interactor List: Start");
if (interactorList != null) {
- for (InteractorElementType cProtein :
interactorList.getInteractor()) {
- String id = "" + cProtein.getId();
- log("Extracting: " + id + " --> " + cProtein);
- interactorMap.put(id, cProtein);
- }
+ for (InteractorElementType cProtein :
interactorList.getInteractor())
+
interactorMap.put(Integer.toString(cProtein.getId()), cProtein);
}
- log("Extracting Interactor List: End");
+ logger.debug("Extracting Interactor List: End");
}
/**
* Extracts PSI Interaction List
*/
- private void extractInteractionList(EntrySet.Entry.InteractionList
interactionList)
- throws MapperException {
- log("Extracting Interaction List: Start");
+ private void extractInteractionList(EntrySet.Entry.InteractionList
interactionList) throws MapperException {
+ logger.debug("Extracting Interaction List: Start");
for (EntrySet.Entry.InteractionList.Interaction cInteraction :
interactionList.getInteraction()) {
Interaction interaction = new Interaction();
- List<CvType> interactionTypes = cInteraction.getInteractionType();
+ final List<CvType> interactionTypes =
cInteraction.getInteractionType();
- InteractionElementType.ParticipantList pList =
cInteraction.getParticipantList();
- int pCount = pList.getParticipant().size();
- ArrayList<Interactor> interactorList = new
ArrayList<Interactor>();
- Map<String, String> interactorRoles = new
HashMap<String, String>();
+ final InteractionElementType.ParticipantList pList =
cInteraction.getParticipantList();
+ final int pCount = pList.getParticipant().size();
+ final List<Interactor> interactorList = new
ArrayList<Interactor>();
+ final Map<String, String> interactorRoles = new
HashMap<String, String>();
for (int j = 0; j < pCount; j++) {
Interactor interactor =
extractInteractorRefOrElement(pList, j);
- log("Getting interactor: " + interactor);
+ logger.debug("Getting interactor: " +
interactor);
interactorList.add(interactor);
ParticipantType participant =
pList.getParticipant().get(j);
ParticipantType.ExperimentalRoleList role =
participant.getExperimentalRoleList();
if (role != null) {
- for
(ParticipantType.ExperimentalRoleList.ExperimentalRole expRole : role
-
.getExperimentalRole()) {
+ for
(ParticipantType.ExperimentalRoleList.ExperimentalRole expRole :
role.getExperimentalRole()) {
NamesType namesType =
expRole.getNames();
String roleName =
namesType.getShortLabel();
- log("Storing role for: " +
interactor.getName() + " --> " + roleName);
+ logger.debug("Storing role for:
" + interactor.getName() + " --> " + roleName);
interactorRoles.put(interactor.getName(), roleName);
}
}
@@ -209,37 +218,36 @@
List<Interaction> expDatalist =
extractExperimentalData(cInteraction, interaction);
- // Add BAIT MAP / Names To all Interactions.
+ // Add BAIT MAP / Names To all Interactions.
for (int j = 0; j < expDatalist.size(); j++) {
interaction = expDatalist.get(j);
interaction.addAttribute(InteractionVocab.BAIT_MAP, interactorRoles);
extractInteractionNamesXrefs(cInteraction,
interaction);
- addInteractorType(interactionTypes, interaction);
- }
+ addInteractorType(interactionTypes,
interaction);
+ }
- log("Adding num interactions: " + expDatalist.size());
+ logger.debug("Adding num interactions: " +
expDatalist.size());
interactions.addAll(expDatalist);
}
- log("Extracting Interaction List: End");
+ logger.debug("Extracting Interaction List: End");
}
- private void addInteractorType(List<CvType> interactionTypes,
- org.cytoscape.psi_mi.internal.model.Interaction interaction) {
- if (interactionTypes != null) {
- if (interactionTypes.size() ==1) {
- CvType interactionType = interactionTypes.get(0);
- NamesType namesType = interactionType.getNames();
- if (namesType != null) {
- String shortName = namesType.getShortLabel();
- if (shortName != null) {
-
interaction.addAttribute(InteractionVocab.INTERACTION_TYPE_NAME,
- shortName);
- }
- }
- }
- }
- }
+ private void addInteractorType(List<CvType> interactionTypes,
+ org.cytoscape.psi_mi.internal.model.Interaction
interaction) {
+ if (interactionTypes != null) {
+ if (interactionTypes.size() == 1) {
+ CvType interactionType =
interactionTypes.get(0);
+ NamesType namesType =
interactionType.getNames();
+ if (namesType != null) {
+ String shortName =
namesType.getShortLabel();
+ if (shortName != null) {
+
interaction.addAttribute(InteractionVocab.INTERACTION_TYPE_NAME, shortName);
+ }
+ }
+ }
+ }
+ }
/**
* Extracts Interaction Names.
@@ -252,20 +260,18 @@
String shortLabel = names.getShortLabel();
String fullName = names.getFullName();
- if (shortLabel != null) {
+ if (shortLabel != null)
interaction.addAttribute(InteractionVocab.INTERACTION_SHORT_NAME, shortLabel);
- }
- if (fullName != null) {
+ if (fullName != null)
interaction.addAttribute(InteractionVocab.INTERACTION_FULL_NAME, fullName);
- }
}
XrefType xref = cInteraction.getXref();
ExternalReference[] refs = extractExternalRefs(xref);
if ((refs != null) && (refs.length > 0)) {
- log("Got refs: " + refs.length);
+ logger.debug("Got refs: " + refs.length);
interaction.setExternalRefs(refs);
}
}
@@ -273,18 +279,17 @@
/**
* Extracts Interactor From Reference or Element.
*/
- private Interactor
extractInteractorRefOrElement(InteractionElementType.ParticipantList pList,
- int j) throws
MapperException {
+ private Interactor
extractInteractorRefOrElement(InteractionElementType.ParticipantList pList, int
j)
+ throws MapperException {
Interactor interactor;
InteractorElementType cInteractor = null;
ParticipantType participant = pList.getParticipant().get(j);
Integer ref = participant.getInteractorRef();
- if (ref != null) {
- cInteractor = interactorMap.get("" + ref);
- } else {
+ if (ref != null)
+ cInteractor = interactorMap.get(ref.toString());
+ else
cInteractor = participant.getInteractor();
- }
interactor = createInteractor(cInteractor);
@@ -408,12 +413,15 @@
/**
* Gets Interaction Detection.
*/
- private void extractInteractionDetection(ExperimentType expDesc,
Interaction interaction) {
+ private void extractInteractionDetection(final ExperimentType expDesc,
final Interaction interaction) {
String expSystem;
if (expDesc != null) {
- CvType detection =
expDesc.getInteractionDetectionMethod();
- NamesType names = detection.getNames();
+ final CvType detection =
expDesc.getInteractionDetectionMethod();
+ if(detection == null)
+ return;
+
+ final NamesType names = detection.getNames();
expSystem = names.getShortLabel();
if (expSystem != null) {
@@ -528,10 +536,4 @@
}
}
}
-
- private void log(String msg) {
- if (DEBUG) {
- System.out.println(msg);
- }
- }
}
Modified:
core3/impl/trunk/psi-mi-impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewReader.java
===================================================================
---
core3/impl/trunk/psi-mi-impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewReader.java
2011-12-13 18:19:41 UTC (rev 27780)
+++
core3/impl/trunk/psi-mi-impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewReader.java
2011-12-13 21:53:34 UTC (rev 27781)
@@ -6,6 +6,7 @@
import java.io.InputStreamReader;
import java.io.StringWriter;
import java.util.ArrayList;
+import java.util.List;
import org.cytoscape.io.read.CyNetworkReader;
import org.cytoscape.model.CyNetwork;
@@ -18,21 +19,23 @@
import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.model.CyNetworkViewFactory;
-import org.cytoscape.view.vizmap.VisualStyle;
import org.cytoscape.work.AbstractTask;
import org.cytoscape.work.Task;
import org.cytoscape.work.TaskIterator;
import org.cytoscape.work.TaskMonitor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class PsiMiNetworkViewReader extends AbstractTask implements
CyNetworkReader {
+ private static final Logger logger =
LoggerFactory.getLogger(PsiMiNetworkViewReader.class);
+
private static final int BUFFER_SIZE = 16384;
private final CyNetworkViewFactory networkViewFactory;
private final CyNetworkFactory networkFactory;
private InputStream inputStream;
-
private CyNetwork network;
private CyLayoutAlgorithmManager layouts;
@@ -46,36 +49,58 @@
@Override
public void run(TaskMonitor taskMonitor) throws Exception {
- taskMonitor.setProgress(0.0);
+ long start = System.currentTimeMillis();
+ logger.info("==================== PSI-MI XML Data Import start
==============");
+
+ taskMonitor.setProgress(0.01d);
+ taskMonitor.setTitle("Loading PSI-MI XML File ");
+ taskMonitor.setStatusMessage("Loading data file in PSI-MI 2.5
XML format.");
+
String xml = readString(inputStream);
+ taskMonitor.setProgress(0.2d);
+ taskMonitor.setStatusMessage("Data Loaded. Mapping Data to
Network...");
- ArrayList<Interaction> interactions = new
ArrayList<Interaction>();
+ final List<Interaction> interactions = new
ArrayList<Interaction>();
// Pick one of two mappers
- int level2 = xml.indexOf("level=\"2\"");
+ final int level2 = xml.indexOf("level=\"2\"");
if ((level2 > 0) && (level2 < 500)) {
+ // This is 2.5 format
MapPsiTwoFiveToInteractions mapper = new
MapPsiTwoFiveToInteractions(xml, interactions);
mapper.doMapping();
+ mapper = null;
} else {
MapPsiOneToInteractions mapper = new
MapPsiOneToInteractions(xml, interactions);
mapper.doMapping();
+ mapper = null;
}
- taskMonitor.setProgress(0.25);
+ taskMonitor.setProgress(0.6d);
// Now map to Cytoscape network objects.
network = networkFactory.createNetwork();
- MapToCytoscape mapper2 = new MapToCytoscape(network,
interactions, MapToCytoscape.SPOKE_VIEW);
+ xml = null;
+
+ taskMonitor.setStatusMessage("Creating Network...");
+ final MapToCytoscape mapper2 = new MapToCytoscape(network,
interactions, MapToCytoscape.SPOKE_VIEW);
mapper2.doMapping();
-
- taskMonitor.setProgress(1.0);
+ taskMonitor.setProgress(1.0d);
+ logger.info("PSI-MI 2.5 XML Data Import finihsed in " +
(System.currentTimeMillis() - start) + " msec.");
}
-
+ /**
+ * Create big String object from the entire XML file
+ * TODO: is this OK for huge data files?
+ *
+ * @param source
+ * @return
+ * @throws IOException
+ */
private static String readString(InputStream source) throws IOException
{
- StringWriter writer = new StringWriter();
- BufferedReader reader = new BufferedReader(new
InputStreamReader(source));
+ final StringWriter writer = new StringWriter();
+
+ final BufferedReader reader = new BufferedReader(new
InputStreamReader(source));
try {
char[] buffer = new char[BUFFER_SIZE];
int charactersRead = reader.read(buffer, 0,
buffer.length);
Modified:
core3/impl/trunk/psi-mi-impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewTaskFactory.java
===================================================================
---
core3/impl/trunk/psi-mi-impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewTaskFactory.java
2011-12-13 18:19:41 UTC (rev 27780)
+++
core3/impl/trunk/psi-mi-impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewTaskFactory.java
2011-12-13 21:53:34 UTC (rev 27781)
@@ -27,7 +27,8 @@
@Override
public TaskIterator createTaskIterator() {
- return new TaskIterator(new PsiMiNetworkViewReader(inputStream,
networkFactory, networkViewFactory, layouts));
+ // Usually 3 tasks: load, visualize, and layout.
+ return new TaskIterator(3, new
PsiMiNetworkViewReader(inputStream, networkFactory, networkViewFactory,
layouts));
}
@Override
Modified:
core3/impl/trunk/psi-mi-impl/src/test/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewReaderTest.java
===================================================================
---
core3/impl/trunk/psi-mi-impl/src/test/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewReaderTest.java
2011-12-13 18:19:41 UTC (rev 27780)
+++
core3/impl/trunk/psi-mi-impl/src/test/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewReaderTest.java
2011-12-13 21:53:34 UTC (rev 27781)
@@ -23,8 +23,13 @@
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class PsiMiNetworkViewReaderTest {
+
+ private static final Logger logger =
LoggerFactory.getLogger(PsiMiNetworkViewReaderTest.class);
+
@Mock CyLayoutAlgorithmManager layouts;
@Mock CyLayoutAlgorithm layout;
@Mock TaskMonitor taskMonitor;
@@ -85,4 +90,35 @@
assertEquals(40, network.getNodeCount());
assertEquals(39, network.getEdgeCount());
}
+
+ // The following is for performance testing. Enable when necessary.
+ //@Test
+ public void testReadPsiMi25Large() throws Exception {
+ long total = 0;
+
+ for (int i = 0; i < 5; i++) {
+ long start = System.currentTimeMillis();
+ logger.debug("HPRD Data Import start");
+ File file = new
File("src/test/resources/testData/HPRD_SINGLE_PSIMI_041210.xml");
+ CyNetworkReader reader = createReader(file);
+ reader.run(taskMonitor);
+ CyNetwork[] networks = reader.getNetworks();
+
+ long time = System.currentTimeMillis() - start;
+ total+= time;
+
+ logger.debug("HPRD Data Import finihsed in " + time + "
msec.");
+
+ assertNotNull(networks);
+ assertEquals(1, networks.length);
+
+ final CyNetwork network = networks[0];
+ assertNotNull(network);
+
+ assertEquals(9869, network.getNodeCount());
+ assertEquals(62226, network.getEdgeCount());
+ }
+
+ logger.debug("Average loading time = " + total/5 + " msec.");
+ }
}
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/CyActivator.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/CyActivator.java
2011-12-13 18:19:41 UTC (rev 27780)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/CyActivator.java
2011-12-13 21:53:34 UTC (rev 27781)
@@ -145,6 +145,7 @@
public void start(BundleContext bc) {
ImportNetworksTaskFactory importNetworkTF = getService(bc,
ImportNetworksTaskFactory.class, "(id=loadNetworkURLTaskFactory)");
+ TaskFactory importNetworkFileTF = getService(bc,
TaskFactory.class, "(id=loadNetworkFileTaskFactory)");
NetworkTaskFactory createNetworkViewTaskFactory =
getService(bc, NetworkTaskFactory.class, "(id=createNetworkViewTaskFactory)");
TaskFactory openSessionTaskFactory = getService(bc,
TaskFactory.class, "(id=openSessionTaskFactory)");
@@ -293,7 +294,7 @@
cyApplicationManagerServiceRef);
// Show Welcome Screen
- final WelcomeScreenAction welcomeScreenAction = new
WelcomeScreenAction(cytoscapeDesktop, cyApplicationManagerServiceRef,
openBrowserServiceRef, recentlyOpenedTrackerServiceRef, openSessionTaskFactory,
submenuTaskManagerServiceRef, importNetworkTF, createNetworkViewTaskFactory,
cyApplicationConfigurationServiceRef, dsManagerServiceRef,
cytoscapePropertiesServiceRef);
+ final WelcomeScreenAction welcomeScreenAction = new
WelcomeScreenAction(cytoscapeDesktop, cyApplicationManagerServiceRef,
openBrowserServiceRef, recentlyOpenedTrackerServiceRef, openSessionTaskFactory,
submenuTaskManagerServiceRef, importNetworkFileTF, importNetworkTF,
createNetworkViewTaskFactory, cyApplicationConfigurationServiceRef,
dsManagerServiceRef, cytoscapePropertiesServiceRef);
registerService(bc, welcomeScreenAction, CyAction.class, new
Properties());
registerService(bc, undoAction, CyAction.class, new
Properties());
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/WelcomeScreenAction.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/WelcomeScreenAction.java
2011-12-13 18:19:41 UTC (rev 27780)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/WelcomeScreenAction.java
2011-12-13 21:53:34 UTC (rev 27781)
@@ -35,13 +35,14 @@
private final NetworkTaskFactory networkTaskFactory;
private final TaskFactory openSessionTaskFactory;
+ private final TaskFactory importNetworkFileTF;
private final CySwingApplication app;
private final CyProperty<Properties> cyProps;
public WelcomeScreenAction(final CySwingApplication app, final
CyApplicationManager applicationManager,
OpenBrowser openBrowserServiceRef,
RecentlyOpenedTracker fileTracker, final TaskFactory openSessionTaskFactory,
TaskManager guiTaskManager,
- final ImportNetworksTaskFactory
importNetworksTaskFactory, final NetworkTaskFactory networkTaskFactory,
+ final TaskFactory importNetworkFileTF, final
ImportNetworksTaskFactory importNetworksTaskFactory, final NetworkTaskFactory
networkTaskFactory,
final CyApplicationConfiguration config, final
DataSourceManager dsManager, final CyProperty<Properties> cyProps) {
super(MENU_NAME, applicationManager);
setPreferredMenu(PARENT_NAME);
@@ -56,13 +57,14 @@
this.app = app;
this.cyProps = cyProps;
this.openSessionTaskFactory = openSessionTaskFactory;
+ this.importNetworkFileTF = importNetworkFileTF;
}
@Override
public void actionPerformed(ActionEvent ae) {
final JDialog welcomeScreen = new
WelcomeScreenDialog(openBrowser, fileTracker, openSessionTaskFactory,
guiTaskManager, config,
- importNetworksTaskFactory, networkTaskFactory,
dsManager, cyProps);
+ importNetworkFileTF, importNetworksTaskFactory,
networkTaskFactory, dsManager, cyProps);
welcomeScreen.setLocationRelativeTo(app.getJFrame());
welcomeScreen.setVisible(true);
}
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/welcomescreen/CreateNewNetworkPanel.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/welcomescreen/CreateNewNetworkPanel.java
2011-12-13 18:19:41 UTC (rev 27780)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/welcomescreen/CreateNewNetworkPanel.java
2011-12-13 21:53:34 UTC (rev 27781)
@@ -67,7 +67,8 @@
private Window parent;
- private final ImportNetworksTaskFactory loadNetworkFileTF;
+ private final ImportNetworksTaskFactory importNetworkFromURLTF;
+ private final TaskFactory importNetworkFileTF;
private final NetworkTaskFactory createViewTaskFactory;
private final DataSourceManager dsManager;
@@ -77,12 +78,13 @@
private boolean firstSelection = false;
- CreateNewNetworkPanel(Window parent, final TaskManager guiTaskManager,
final ImportNetworksTaskFactory loadTF,
+ CreateNewNetworkPanel(Window parent, final TaskManager guiTaskManager,
final TaskFactory importNetworkFileTF, final ImportNetworksTaskFactory loadTF,
final NetworkTaskFactory createViewTaskFactory, final
CyApplicationConfiguration config,
final DataSourceManager dsManager, final Properties
props) {
this.parent = parent;
- this.loadNetworkFileTF = loadTF;
+ this.importNetworkFromURLTF = loadTF;
this.createViewTaskFactory = createViewTaskFactory;
+ this.importNetworkFileTF = importNetworkFileTF;
this.guiTaskManager = guiTaskManager;
this.dsManager = dsManager;
this.viewThreshold = getViewThreshold(props);
@@ -148,7 +150,7 @@
public void mouseClicked(MouseEvent ev) {
// Load network from file.
parent.dispose();
- guiTaskManager.execute((TaskFactory)
loadNetworkFileTF);
+ guiTaskManager.execute(importNetworkFileTF);
}
});
this.setBorder(new LineBorder(new Color(0, 0, 0, 0), 10));
@@ -178,7 +180,7 @@
@Override
public TaskIterator createTaskIterator() {
- return new TaskIterator(2, new
CreateNetworkViewTask(url, loadNetworkFileTF, createViewTaskFactory));
+ return new TaskIterator(2, new
CreateNetworkViewTask(url, importNetworkFromURLTF, createViewTaskFactory));
}
});
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/welcomescreen/WelcomeScreenDialog.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/welcomescreen/WelcomeScreenDialog.java
2011-12-13 18:19:41 UTC (rev 27780)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/actions/welcomescreen/WelcomeScreenDialog.java
2011-12-13 21:53:34 UTC (rev 27781)
@@ -63,10 +63,12 @@
private final DataSourceManager dsManager;
private final CyProperty<Properties> cyProps;
+
+ private final TaskFactory importNetworkFileTF;
public WelcomeScreenDialog(OpenBrowser openBrowserServiceRef,
RecentlyOpenedTracker fileTracker, final TaskFactory openSessionTaskFactory,
TaskManager guiTaskManager, final
CyApplicationConfiguration config,
- final ImportNetworksTaskFactory importNetworkTF, final
NetworkTaskFactory networkTaskFactory,
+ final TaskFactory importNetworkFileTF, final
ImportNetworksTaskFactory importNetworkTF, final NetworkTaskFactory
networkTaskFactory,
final DataSourceManager dsManager, final
CyProperty<Properties> cyProps) {
this.openBrowserServiceRef = openBrowserServiceRef;
this.fileTracker = fileTracker;
@@ -75,6 +77,7 @@
this.networkTaskFactory = networkTaskFactory;
this.dsManager = dsManager;
this.openSessionTaskFactory = openSessionTaskFactory;
+ this.importNetworkFileTF = importNetworkFileTF;
this.guiTaskManager = guiTaskManager;
this.cyProps = cyProps;
@@ -167,7 +170,7 @@
panel4.setBackground(PANEL_COLOR);
buildHelpPanel(panel1, new OpenPanel(this, fileTracker,
guiTaskManager, openSessionTaskFactory), "Open a Recent Session");
- buildHelpPanel(panel2, new CreateNewNetworkPanel(this,
guiTaskManager, loadNetworkTF, networkTaskFactory, config, dsManager,
cyProps.getProperties()),
+ buildHelpPanel(panel2, new CreateNewNetworkPanel(this,
guiTaskManager, importNetworkFileTF, loadNetworkTF, networkTaskFactory, config,
dsManager, cyProps.getProperties()),
"Create New Network");
buildHelpPanel(panel3, new HelpPanel(openBrowserServiceRef),
"Help");
buildHelpPanel(panel4, new LogoPanel(), "Latest News");
Modified:
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/task/SwingTaskMonitor.java
===================================================================
---
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/task/SwingTaskMonitor.java
2011-12-13 18:19:41 UTC (rev 27780)
+++
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/task/SwingTaskMonitor.java
2011-12-13 21:53:34 UTC (rev 27781)
@@ -118,12 +118,9 @@
if (dialog != null)
dialog.setPercentCompleted(-1);
} else {
- logger.info("Set Progeress called: " + progress);
double completed =
(double)currentTaskNum/(double)expectedNumTasks;
double adjustedProgress = (progress *
fractionOfOverall) + completed;
- this.progress = (int) Math.floor(100.0 *
adjustedProgress);
-
- logger.info("## Set Progeress converted: " +
this.progress);
+ this.progress = (int) Math.floor(100.0 *
adjustedProgress);
if (dialog != null)
dialog.setPercentCompleted(this.progress);
}
--
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.