Author: mes Date: 2010-08-20 14:43:30 -0700 (Fri, 20 Aug 2010) New Revision: 21504
Added: core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewProducer.java core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewProducerFactory.java core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/read/sif/ core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/read/sif/InteractionTest.java core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewProducerTest.java core3/io-impl/trunk/src/test/resources/testData/sif/ core3/io-impl/trunk/src/test/resources/testData/sif/degenerate.sif core3/io-impl/trunk/src/test/resources/testData/sif/multiWordProteins.sif core3/io-impl/trunk/src/test/resources/testData/sif/multiWordProteinsFileTrailingSpaces.sif core3/io-impl/trunk/src/test/resources/testData/sif/sample.sif Removed: core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerFactoryImpl.java core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetwotkViewProducer.java core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/BeanIntegrationTest.java core3/io-impl/trunk/src/test/java/org/cytoscape/io/read/ Modified: core3/io-impl/trunk/pom.xml core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/AbstractNetworkViewProducer.java core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerManagerImpl.java core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/Interaction.java core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/XGMMLNetworkViewProducer.java core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml Log: fixed things to work propertly with new api Modified: core3/io-impl/trunk/pom.xml =================================================================== --- core3/io-impl/trunk/pom.xml 2010-08-20 21:41:59 UTC (rev 21503) +++ core3/io-impl/trunk/pom.xml 2010-08-20 21:43:30 UTC (rev 21504) @@ -218,13 +218,29 @@ <artifactId>work-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency> - <dependency> <groupId>org.cytoscape</groupId> + <artifactId>core-task-api</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.cytoscape</groupId> <artifactId>session-api</artifactId> <version>1.0-SNAPSHOT</version> <scope>provided</scope> </dependency> + <dependency> + <groupId>org.cytoscape</groupId> + <artifactId>test-support</artifactId> + <version>1.0-SNAPSHOT</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + <version>1.8.1</version> + <scope>test</scope> + </dependency> </dependencies> </project> Modified: core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/AbstractNetworkViewProducer.java =================================================================== --- core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/AbstractNetworkViewProducer.java 2010-08-20 21:41:59 UTC (rev 21503) +++ core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/AbstractNetworkViewProducer.java 2010-08-20 21:43:30 UTC (rev 21504) @@ -5,63 +5,40 @@ import org.cytoscape.io.read.CyNetworkViewProducer; import org.cytoscape.view.model.CyNetworkView; -import org.cytoscape.view.vizmap.VisualStyle; -import org.cytoscape.view.layout.CyLayouts; -import org.cytoscape.model.CyNetworkFactory; import org.cytoscape.view.model.CyNetworkViewFactory; +import org.cytoscape.model.CyNetworkFactory; +import org.cytoscape.view.vizmap.VisualStyle; +import org.cytoscape.task.AbstractTask; -public abstract class AbstractNetworkViewProducer implements CyNetworkViewProducer{ +public abstract class AbstractNetworkViewProducer extends AbstractTask + implements CyNetworkViewProducer { - protected static final String NODE_NAME_ATTR_LABEL = "name"; protected CyNetworkView[] cyNetworkViews; protected VisualStyle[] visualstyles; - protected boolean cancel = false; protected InputStream inputStream; - protected CyNetworkFactory cyNetworkFactory; - protected CyNetworkViewFactory cyNetworkViewFactory; - protected CyLayouts layouts; + protected final CyNetworkViewFactory cyNetworkViewFactory; + protected final CyNetworkFactory cyNetworkFactory; - public CyNetworkView[] getNetworkViews() { - return cyNetworkViews; - } + // TODO this should come from model-api + public static final String NODE_NAME_ATTR_LABEL = "name"; - public VisualStyle[] getVisualStyles() { - return visualstyles; - } - - public void setInputStream(InputStream is) { - if (is == null) + public AbstractNetworkViewProducer(InputStream inputStream, + CyNetworkViewFactory cyNetworkViewFactory, + CyNetworkFactory cyNetworkFactory) { + if (inputStream == null) throw new NullPointerException("Input stream is null"); - inputStream = is; - cancel = false; - } - - public void setCyNetworkFactory(CyNetworkFactory cyNetworkFactory) { + this.inputStream = inputStream; + this.cyNetworkViewFactory = cyNetworkViewFactory; this.cyNetworkFactory = cyNetworkFactory; } - public void setCyNetworkViewFactory(CyNetworkViewFactory cyNetworkViewFactory) { - this.cyNetworkViewFactory = cyNetworkViewFactory; + public CyNetworkView[] getNetworkViews() { + return cyNetworkViews; } - public void setLayouts(CyLayouts layouts) { - this.layouts = layouts; + public VisualStyle[] getVisualStyles() { + return visualstyles; } - - public void cancel() - { - if (cancel) - throw new IllegalStateException("AbstractNetworkViewProducer has already been cancelled"); - - cancel = true; - try - { - inputStream.close(); - } - catch (IOException e) {} - inputStream = null; - } - } Deleted: core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerFactoryImpl.java =================================================================== --- core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerFactoryImpl.java 2010-08-20 21:41:59 UTC (rev 21503) +++ core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerFactoryImpl.java 2010-08-20 21:43:30 UTC (rev 21504) @@ -1,71 +0,0 @@ -package org.cytoscape.io.internal.read; - -import java.io.IOException; -import java.io.InputStream; -import java.net.Proxy; -import java.net.URI; - -import org.cytoscape.io.CyFileFilter; -import org.cytoscape.io.read.CyNetworkViewProducer; -import org.cytoscape.io.read.CyNetworkViewProducerFactory; -import org.cytoscape.io.util.StreamUtil; - -public class CyNetworkViewProducerFactoryImpl implements CyNetworkViewProducerFactory { - - private CyFileFilter filter; - private CyNetworkViewProducer producer; - private StreamUtil streamUtil; - private InputStream is; - - // This should be an OSGi service. - private Proxy proxy; - - public CyNetworkViewProducerFactoryImpl(CyFileFilter filter, CyNetworkViewProducer producer, StreamUtil streamUtil) - throws IllegalArgumentException { - this.filter = filter; - this.producer = producer; - - if (this.producer == null) { - throw new IllegalArgumentException("Reader cannot be null."); - } else if (this.producer == null) { - throw new IllegalArgumentException("CyFileFilter cannot be null."); - } - this.streamUtil = streamUtil; - } - - public void setProxy(Proxy proxy) { - this.proxy = proxy; - } - - public CyNetworkViewProducer getTask(){ - ///????? - return null; - } - public void setInputStream(InputStream is) { - //???? - this.is = is; - } - - - /** - * Gets Graph Reader. - * - * @param fileName - * File name. - * @return GraphReader Object. - * @throws IOException - */ - public CyNetworkViewProducer getNetworkViewProducer(URI uri) throws IOException { - InputStream is = streamUtil.getInputStream(uri.toURL()); - return getNetworkViewProducer(is); - } - - public CyNetworkViewProducer getNetworkViewProducer(InputStream stream) throws IOException { - producer.setInputStream(stream); - return producer; - } - - public CyFileFilter getCyFileFilter() { - return filter; - } -} Modified: core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerManagerImpl.java =================================================================== --- core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerManagerImpl.java 2010-08-20 21:41:59 UTC (rev 21503) +++ core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/CyNetworkViewProducerManagerImpl.java 2010-08-20 21:43:30 UTC (rev 21504) @@ -13,36 +13,17 @@ import org.cytoscape.io.CyFileFilter; import org.cytoscape.io.DataCategory; +import org.slf4j.LoggerFactory; +import org.slf4j.Logger; + public class CyNetworkViewProducerManagerImpl implements CyNetworkViewProducerManager{ - private DataCategory category = DataCategory.NETWORK; - - /* - * Not generic because Spring does not support it now. - */ - @SuppressWarnings("unchecked") - public void addInputStreamFactory(CyNetworkViewProducerFactory factory, Map props){ - - } + private final DataCategory category = DataCategory.NETWORK; + private final Set<CyNetworkViewProducerFactory> factories = + new HashSet<CyNetworkViewProducerFactory>(); + private final Logger logger = LoggerFactory.getLogger(CyNetworkViewProducerManagerImpl.class); - @SuppressWarnings("unchecked") - public void removeInputStreamFactory(CyNetworkViewProducerFactory factory, Map props){ - - } - - - ////////////////// - - private Set<CyNetworkViewProducerFactory> factories; - /** - * Constructor. - */ - public CyNetworkViewProducerManagerImpl() { - factories = new HashSet<CyNetworkViewProducerFactory>(); - } - - /** * Listener for OSGi service * * @param factory @@ -71,79 +52,50 @@ * File name or null if no reader is capable of reading the file. * @return GraphReader capable of reading the specified file. */ - public CyNetworkViewProducer getProducer(URI fileLocation) - throws IllegalArgumentException { - return getProducer(fileLocation, null); - } - - public CyNetworkViewProducer getProducer(InputStream stream) - throws IllegalArgumentException { - return getProducer(null, stream); - } - - private CyNetworkViewProducer getProducer(URI uri, InputStream stream) { - - CyFileFilter cff; - CyNetworkViewProducer networkViewProducer = null; - - + public CyNetworkViewProducer getProducer(URI uri) { for (CyNetworkViewProducerFactory factory : factories) { - System.out.println("Checking factory ################# " + factory.getCyFileFilter().getDescription()); - - - cff = factory.getCyFileFilter(); + CyFileFilter cff = factory.getCyFileFilter(); if (uri != null) { boolean accept = false; - try - { + try { accept = cff.accept(uri, category); + } catch (IOException e) { + logger.warn("Failed to check file's contents: " + uri.toString(), e); } - catch (IOException e) - { - throw new IllegalArgumentException("Failed to check file's contents: " + uri.toString(), e); - } - if (accept) - { - try - { - networkViewProducer = factory.getNetworkViewProducer(uri); + + if (accept) { + try { + factory.setInputStream( uri.toURL().openStream() ); + return factory.getTask(); + } catch (IOException e) { + logger.error("Could not get proper reader for the file: " + uri.toString(), e); } - catch (IOException e) - { - throw new IllegalArgumentException("Could not get proper reader for the file.", e); - } } - } else { - System.out.println("################# " + cff.getClass()); - //if (cff.accept(stream, category)) - try - { - networkViewProducer = factory.getNetworkViewProducer(stream); - } - catch (IOException e) - { - throw new IllegalArgumentException("Could not get proper reader for the file.", e); - } } } - if (networkViewProducer == null) { - throw new IllegalArgumentException("File type is not supported."); - } - - System.out.println("### Producer found: " + networkViewProducer); - return networkViewProducer; + return null; } - - - - - - - - + public CyNetworkViewProducer getProducer(InputStream stream) { + + for (CyNetworkViewProducerFactory factory : factories) { + + CyFileFilter cff = factory.getCyFileFilter(); + + try { + if (cff.accept(stream, category)) { + factory.setInputStream(stream); + return factory.getTask(); + } + } catch (IOException e) { + logger.warn("Failed to check streams's contents: ", e); + } + } + + return null; + } } Modified: core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/Interaction.java =================================================================== --- core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/Interaction.java 2010-08-20 21:41:59 UTC (rev 21503) +++ core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/Interaction.java 2010-08-20 21:43:30 UTC (rev 21504) @@ -43,7 +43,7 @@ /** * Utility class for representing one line of SIF file. */ -public class Interaction { +class Interaction { private String source; private List<String> targets = new ArrayList<String>(); @@ -57,7 +57,7 @@ * @param delimiter * DOCUMENT ME! */ - public Interaction(final String rawText, final String delimiter) { + Interaction(final String rawText, final String delimiter) { final StringTokenizer strtok = new StringTokenizer(rawText, delimiter); int counter = 0; Added: core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewProducer.java =================================================================== --- core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewProducer.java (rev 0) +++ core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewProducer.java 2010-08-20 21:43:30 UTC (rev 21504) @@ -0,0 +1,179 @@ +/* + Copyright (c) 2006, The Cytoscape Consortium (www.cytoscape.org) + + The Cytoscape Consortium is: + - Institute for Systems Biology + - University of California San Diego + - Memorial Sloan-Kettering Cancer Center + - Institut Pasteur + - Agilent Technologies + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, or + any later version. + + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. The software and + documentation provided hereunder is on an "as is" basis, and the + Institute for Systems Biology and the Whitehead Institute + have no obligations to provide maintenance, support, + updates, enhancements or modifications. In no event shall the + Institute for Systems Biology and the Whitehead Institute + be liable to any party for direct, indirect, special, + incidental or consequential damages, including lost profits, arising + out of the use of this software and its documentation, even if the + Institute for Systems Biology and the Whitehead Institute + have been advised of the possibility of such damage. See + the GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this library; if not, write to the Free Software Foundation, + Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.cytoscape.io.internal.read.sif; + +import java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import org.cytoscape.io.internal.util.ReadUtils; +import org.cytoscape.io.internal.read.AbstractNetworkViewProducer; +import org.cytoscape.model.CyEdge; +import org.cytoscape.model.CyNetwork; +import org.cytoscape.model.CyNode; +import org.cytoscape.model.CyNetworkFactory; +import org.cytoscape.view.model.CyNetworkView; +import org.cytoscape.view.model.CyNetworkViewFactory; +import org.cytoscape.work.TaskMonitor; +import org.cytoscape.view.layout.CyLayouts; + +/** + * Reader for graphs in the interactions file format. Given the filename, + * provides the graph and attributes objects constructed from the file. + */ +public class SIFNetworkViewProducer extends AbstractNetworkViewProducer { + + private static final String DEF_DELIMITER = " "; + private static final String LINE_SEP = System.getProperty("line.separator"); + private static final String INTERACTION = "interaction"; + + private final Set<Interaction> interactions = new HashSet<Interaction>(); + private final ReadUtils readUtil; + private final CyLayouts layouts; + + public SIFNetworkViewProducer(InputStream is, ReadUtils readUtil, CyLayouts layouts, CyNetworkViewFactory cyNetworkViewFactory, CyNetworkFactory cyNetworkFactory) { + super(is,cyNetworkViewFactory, cyNetworkFactory); + this.readUtil = readUtil; + this.layouts = layouts; + } + + public void run(TaskMonitor tm) throws IOException { + try { + readInput(tm); + createNetwork(tm); + } finally { + if (inputStream != null) { + inputStream.close(); + inputStream = null; + } + } + } + + private void readInput(TaskMonitor tm) throws IOException { + tm.setProgress(0.00); + String delimiter = DEF_DELIMITER; + + final String rawText = readUtil.getInputString(inputStream); + + tm.setProgress(0.10); + if (rawText.indexOf("\t") >= 0) + delimiter = "\t"; + + final String[] lines = rawText.split(LINE_SEP); + + tm.setProgress(0.15); + final int size = lines.length; + for (int i = 0; i < size; i++) { + if (lines[i].length() <= 0) + continue; + interactions.add(new Interaction(lines[i], delimiter)); + } + tm.setProgress(0.20); + } + + private void createNetwork(TaskMonitor tm) { + + final CyNetwork network = cyNetworkFactory.getInstance(); + + Map<String, CyNode> nodeMap = new HashMap<String, CyNode>(); + + // put all node names in the Set + for (Interaction interaction : interactions) { + nodeMap.put(interaction.getSource(), null); + for (String target : interaction.getTargets()) + nodeMap.put(target, null); + } + + tm.setProgress(0.25); + + for (String nodeName : nodeMap.keySet()) { + if (cancelTask){ + return; + } + + //tm.setProgress(progress); + + CyNode node = network.addNode(); + node.attrs().set(NODE_NAME_ATTR_LABEL, nodeName); + nodeMap.put(nodeName, node); + } + + tm.setProgress(0.65); + + // Now loop over the interactions again, this time creating edges + // between + // all sources and each of their respective targets. + String srcName; + String interactionType; + CyEdge edge; + + for (Interaction interaction : interactions) { + + if (cancelTask){ + return; + } + + //tm.setProgress(progress); + + srcName = interaction.getSource(); + interactionType = interaction.getType(); + + for (String tgtName : interaction.getTargets()) { + edge = network.addEdge(nodeMap.get(srcName), nodeMap + .get(tgtName), true); + edge.attrs().set(NODE_NAME_ATTR_LABEL, + srcName + " (" + interactionType + ") " + tgtName); + edge.attrs().set(INTERACTION, interactionType); + } + } + + tm.setProgress(0.90); + + final CyNetworkView view = cyNetworkViewFactory.getNetworkView(network); + layouts.getDefaultLayout().doLayout(view); + + // SIF always creates only one network. + this.cyNetworkViews = new CyNetworkView[] { view }; + + nodeMap.clear(); + nodeMap = null; + + tm.setProgress(1.0); + } +} Added: core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewProducerFactory.java =================================================================== --- core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewProducerFactory.java (rev 0) +++ core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewProducerFactory.java 2010-08-20 21:43:30 UTC (rev 21504) @@ -0,0 +1,91 @@ +/* + Copyright (c) 2006, The Cytoscape Consortium (www.cytoscape.org) + + The Cytoscape Consortium is: + - Institute for Systems Biology + - University of California San Diego + - Memorial Sloan-Kettering Cancer Center + - Institut Pasteur + - Agilent Technologies + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, or + any later version. + + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. The software and + documentation provided hereunder is on an "as is" basis, and the + Institute for Systems Biology and the Whitehead Institute + have no obligations to provide maintenance, support, + updates, enhancements or modifications. In no event shall the + Institute for Systems Biology and the Whitehead Institute + be liable to any party for direct, indirect, special, + incidental or consequential damages, including lost profits, arising + out of the use of this software and its documentation, even if the + Institute for Systems Biology and the Whitehead Institute + have been advised of the possibility of such damage. See + the GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this library; if not, write to the Free Software Foundation, + Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.cytoscape.io.internal.read.sif; + +import java.io.IOException; +import java.io.InputStream; + +import org.cytoscape.io.internal.util.ReadUtils; +import org.cytoscape.io.read.CyNetworkViewProducer; +import org.cytoscape.io.read.CyNetworkViewProducerFactory; +import org.cytoscape.io.CyFileFilter; +import org.cytoscape.model.CyEdge; +import org.cytoscape.model.CyNetwork; +import org.cytoscape.model.CyNetworkFactory; +import org.cytoscape.model.CyNode; +import org.cytoscape.view.model.CyNetworkView; +import org.cytoscape.view.model.CyNetworkViewFactory; +import org.cytoscape.view.layout.CyLayouts; + +/** + */ +public class SIFNetworkViewProducerFactory implements CyNetworkViewProducerFactory { + + private final ReadUtils readUtil; + private final CyFileFilter filter; + private final CyLayouts layouts; + private final CyNetworkViewFactory cyNetworkViewFactory; + private final CyNetworkFactory cyNetworkFactory; + + private InputStream inputStream; + + public SIFNetworkViewProducerFactory(ReadUtils readUtil, + CyFileFilter filter, + CyLayouts layouts, + CyNetworkViewFactory cyNetworkViewFactory, + CyNetworkFactory cyNetworkFactory) { + this.readUtil = readUtil; + this.filter = filter; + this.layouts = layouts; + this.cyNetworkViewFactory = cyNetworkViewFactory; + this.cyNetworkFactory = cyNetworkFactory; + } + + public void setInputStream(InputStream is) { + if ( is == null ) + throw new NullPointerException("Input stream is null"); + inputStream = is; + } + + public CyNetworkViewProducer getTask() { + return new SIFNetworkViewProducer(inputStream, readUtil, layouts, + cyNetworkViewFactory, cyNetworkFactory); + } + + public CyFileFilter getCyFileFilter() { + return filter; + } +} Deleted: core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetwotkViewProducer.java =================================================================== --- core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetwotkViewProducer.java 2010-08-20 21:41:59 UTC (rev 21503) +++ core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetwotkViewProducer.java 2010-08-20 21:43:30 UTC (rev 21504) @@ -1,182 +0,0 @@ -/* - File: InteractionsReader.java - - Copyright (c) 2006, The Cytoscape Consortium (www.cytoscape.org) - - The Cytoscape Consortium is: - - Institute for Systems Biology - - University of California San Diego - - Memorial Sloan-Kettering Cancer Center - - Institut Pasteur - - Agilent Technologies - - This library is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 2.1 of the License, or - any later version. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF - MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. The software and - documentation provided hereunder is on an "as is" basis, and the - Institute for Systems Biology and the Whitehead Institute - have no obligations to provide maintenance, support, - updates, enhancements or modifications. In no event shall the - Institute for Systems Biology and the Whitehead Institute - be liable to any party for direct, indirect, special, - incidental or consequential damages, including lost profits, arising - out of the use of this software and its documentation, even if the - Institute for Systems Biology and the Whitehead Institute - have been advised of the possibility of such damage. See - the GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, - Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ - -package org.cytoscape.io.internal.read.sif; - -import java.io.IOException; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import org.cytoscape.io.internal.util.ReadUtils; -import org.cytoscape.io.internal.read.AbstractNetworkViewProducer; -import org.cytoscape.model.CyEdge; -import org.cytoscape.model.CyNetwork; -import org.cytoscape.model.CyNode; -import org.cytoscape.view.model.CyNetworkView; -import org.cytoscape.work.TaskMonitor; - -/** - * Reader for graphs in the interactions file format. Given the filename, - * provides the graph and attributes objects constructed from the file. - */ -public class SIFNetwotkViewProducer extends AbstractNetworkViewProducer { - - private static final String DEF_DELIMITER = " "; - private static final String LINE_SEP = System.getProperty("line.separator"); - private static final String INTERACTION = "interaction"; - private ReadUtils readUtil; - private Set<Interaction> interactions; - - public SIFNetwotkViewProducer(ReadUtils readUtil) { - super(); - this.interactions = new HashSet<Interaction>(); - this.readUtil = readUtil; - } - - public void run(TaskMonitor tm) throws IOException { - refresh(); - - String delimiter = DEF_DELIMITER; - - final String rawText = readUtil.getInputString(inputStream); - - if (rawText.indexOf("\t") >= 0) - delimiter = "\t"; - - final String[] lines = rawText.split(LINE_SEP); - - final int size = lines.length; - for (int i = 0; i < size; i++) { - if (lines[i].length() <= 0) - continue; - interactions.add(new Interaction(lines[i], delimiter)); - } - - if (inputStream != null) { - inputStream.close(); - inputStream = null; - } - - createNetwork(tm); - } - - - private void refresh() { - interactions.clear(); - interactions = new HashSet<Interaction>(); - this.cyNetworkViews = null; - } - - private void createNetwork(TaskMonitor tm) { - - double progress = 0.01; - - final CyNetwork network = cyNetworkFactory.getInstance(); - - Map<String, CyNode> nodeMap = new HashMap<String, CyNode>(); - - // put all node names in the Set - for (Interaction interaction : interactions) { - nodeMap.put(interaction.getSource(), null); - for (String target : interaction.getTargets()) - nodeMap.put(target, null); - } - - tm.setProgress(0.05); - - CyNode node; - for (String nodeName : nodeMap.keySet()) { - if (this.cancel){ - return; - } - - //progress = (??)/nodeCount; - tm.setProgress(progress); - - node = network.addNode(); - node.attrs().set(NODE_NAME_ATTR_LABEL, nodeName); - nodeMap.put(nodeName, node); - } - - tm.setProgress(0.20); - - // Now loop over the interactions again, this time creating edges - // between - // all sources and each of their respective targets. - String srcName; - String interactionType; - CyEdge edge; - - for (Interaction interaction : interactions) { - - if (this.cancel){ - return; - } - //progress = (??)/edgeCount; - tm.setProgress(progress); - - srcName = interaction.getSource(); - interactionType = interaction.getType(); - - for (String tgtName : interaction.getTargets()) { - edge = network.addEdge(nodeMap.get(srcName), nodeMap - .get(tgtName), true); - edge.attrs().set(NODE_NAME_ATTR_LABEL, - srcName + " (" + interactionType + ") " + tgtName); - edge.attrs().set(INTERACTION, interactionType); - } - } - - tm.setProgress(0.90); - - final CyNetworkView view = cyNetworkViewFactory.getNetworkView(network); - layouts.getDefaultLayout().doLayout(view); - - // SIF always creates only one network. - this.cyNetworkViews = new CyNetworkView[1]; - this.cyNetworkViews[0] = view; - - tm.setProgress(0.99); - - nodeMap.clear(); - nodeMap = null; - - } - -} Modified: core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/XGMMLNetworkViewProducer.java =================================================================== --- core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/XGMMLNetworkViewProducer.java 2010-08-20 21:41:59 UTC (rev 21503) +++ core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/XGMMLNetworkViewProducer.java 2010-08-20 21:43:30 UTC (rev 21504) @@ -90,7 +90,7 @@ * Constructor. */ public XGMMLNetworkViewProducer() { - super(); + super(null,null,null); } public void run(TaskMonitor tm) throws IOException { Modified: core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml =================================================================== --- core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml 2010-08-20 21:41:59 UTC (rev 21503) +++ core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml 2010-08-20 21:43:30 UTC (rev 21504) @@ -25,14 +25,6 @@ </bean> --> - <bean id="sifNetworkViewProducerFactory" class="org.cytoscape.io.internal.read.CyNetworkViewProducerFactoryImpl"> - <constructor-arg ref="sifFilter" /> - <constructor-arg ref="sifNetworkViewProducer" /> - <constructor-arg type="org.cytoscape.io.util.StreamUtil"> - <ref bean="streamUtil"/> - </constructor-arg> - </bean> - <bean id="xgmmlNetworkViewProducerFactory" class="org.cytoscape.io.internal.read.CyNetworkViewProducerFactoryImpl"> <constructor-arg ref="xgmmlFilter" /> <constructor-arg ref="xgmmlReader" /> @@ -104,11 +96,12 @@ </bean> <!-- Network Readers --> - <bean id="sifNetworkViewProducer" class="org.cytoscape.io.internal.read.sif.SIFNetwotkViewProducer"> + <bean id="sifNetworkViewProducerFactory" class="org.cytoscape.io.internal.read.sif.SIFNetwotkViewProducerFactory"> <constructor-arg ref="readUtil" /> - <property name="cyNetworkFactory" ref="cyNetworkFactoryServiceRef" /> - <property name="cyNetworkViewFactory" ref="cyNetworkViewFactoryServiceRef" /> - <property name="layouts" ref="cyLayoutsServiceRef" /> + <constructor-arg ref="sifFilter" /> + <constructor-arg ref="cyLayoutsServiceRef" /> + <constructor-arg ref="cyNetworkViewFactoryServiceRef" /> + <constructor-arg ref="cyNetworkFactoryServiceRef" /> </bean> Deleted: core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/BeanIntegrationTest.java =================================================================== --- core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/BeanIntegrationTest.java 2010-08-20 21:41:59 UTC (rev 21503) +++ core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/BeanIntegrationTest.java 2010-08-20 21:43:30 UTC (rev 21504) @@ -1,112 +0,0 @@ -package org.cytoscape.io.internal; - -import static org.easymock.EasyMock.*; -import static org.junit.Assert.assertEquals; - -import java.io.File; -import java.io.IOException; -import java.net.URI; -import java.net.URL; - -import org.cytoscape.io.CyFileFilter; -import org.cytoscape.io.DataCategory; -//import org.cytoscape.io.read.CyReader; -//import org.cytoscape.io.read.CyReaderFactory; -//import org.cytoscape.io.read.CyReaderManager; -//import org.cytoscape.io.internal.read.AbstractNetworkReader; -//import org.cytoscape.io.internal.read.sif.InteractionsReader; -//import org.cytoscape.io.internal.read.xgmml.XGMMLReader; -import org.cytoscape.model.CyNetworkFactory; -import org.cytoscape.view.model.CyNetworkViewFactory; -import org.junit.Before; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests; - - -/** - * Integration test the bundle locally (outside of OSGi). Use AbstractOsgiTests - * and a separate integration test project for testing inside of OSGi. - */ -//@ContextConfiguration(locations = "classpath:META-INF/spring/bundle-context.xml") -//public class BeanIntegrationTest extends AbstractJUnit4SpringContextTests { -public class BeanIntegrationTest { - -// @Autowired -// private CyReaderManager manager; - -// private CyReader sifReader; -// private CyReader xgmmlReader; - - private CyNetworkFactory factoryMock; - private CyNetworkViewFactory viewFactoryMock; - - private CyFileFilter sifFilter; - - //private CyReaderFactory sifFactory; - - private URI sifFileLocation; - private URL xgmmlFile; - private URL xgmmlURL; - - //private CyReaderFactory xgmmlFactory; - - - @Before public void initializeTest1() throws Exception { -/* - sifFileLocation = new URI("http://chianti.ucsd.edu/kono/data/galFiltered.sif"); - final File xFile = new File("src/test/resources/testData/galFiltered.xgmml"); - xgmmlURL = new URL("http://chianti.ucsd.edu/kono/data/galFiltered.xgmml"); - - xgmmlFile = xFile.toURI().toURL(); - sifReader = (CyReader) applicationContext.getBean("sifReader"); - xgmmlReader = (CyReader) applicationContext.getBean("xgmmlReader"); - sifFilter = (CyFileFilter) applicationContext.getBean("sifFilter"); - sifFactory = (CyReaderFactory) applicationContext.getBean("sifReaderFactory"); - xgmmlFactory = (CyReaderFactory) applicationContext.getBean("xgmmlReaderFactory"); - - factoryMock = createMock(CyNetworkFactory.class); - viewFactoryMock = createMock(CyNetworkViewFactory.class); - - expect(factoryMock.getInstance()).andReturn(null).times(2); - - - ((AbstractNetworkReader)sifReader).setCyNetworkFactory(factoryMock); - ((AbstractNetworkReader)xgmmlReader).setCyNetworkFactory(factoryMock); - - System.out.println("--------------------------------------- SIF Description = " + sifFilter.getDescription()); - */ - } - - - /** - * Test using mock service objects. - * @throws Exception - * @throws IllegalArgumentException - */ - @Test public void readerManagerTest() throws Exception { - System.out.println("--------------------------------------- Reader Manager Test Begins"); - -/* - // Register factories - manager.addReaderFactory(sifFactory, null); - manager.addReaderFactory(xgmmlFactory, null); - -// CyReader reader1 = manager.getReader(sifFileLocation, DataCategory.NETWORK); - -// assertEquals(InteractionsReader.class, reader1.getClass()); - // TODO these keep returning sif readers - probably because CyFileFilters is - // broken for input streams. - replay(factoryMock); - CyReader reader2 = manager.getReader(xgmmlFile.openStream(), DataCategory.NETWORK); - assertEquals(XGMMLReader.class, reader2.getClass()); - - CyReader reader3 = manager.getReader(xgmmlURL.openStream(), DataCategory.NETWORK); - assertEquals(XGMMLReader.class, reader3.getClass()); - verify(factoryMock); -*/ - - System.out.println("--------------------------------------- End of reader manager test"); - } -} Added: core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/read/sif/InteractionTest.java =================================================================== --- core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/read/sif/InteractionTest.java (rev 0) +++ core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/read/sif/InteractionTest.java 2010-08-20 21:43:30 UTC (rev 21504) @@ -0,0 +1,94 @@ +/* + File: InteractionTest.java + + Copyright (c) 2006, The Cytoscape Consortium (www.cytoscape.org) + + The Cytoscape Consortium is: + - Institute for Systems Biology + - University of California San Diego + - Memorial Sloan-Kettering Cancer Center + - Institut Pasteur + - Agilent Technologies + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, or + any later version. + + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. The software and + documentation provided hereunder is on an "as is" basis, and the + Institute for Systems Biology and the Whitehead Institute + have no obligations to provide maintenance, support, + updates, enhancements or modifications. In no event shall the + Institute for Systems Biology and the Whitehead Institute + be liable to any party for direct, indirect, special, + incidental or consequential damages, including lost profits, arising + out of the use of this software and its documentation, even if the + Institute for Systems Biology and the Whitehead Institute + have been advised of the possibility of such damage. See + the GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this library; if not, write to the Free Software Foundation, + Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +*/ + + +package org.cytoscape.io.internal.read.sif; + +import static org.junit.Assert.*; +import org.junit.Test; + +public class InteractionTest { + private String delim = " "; + + @Test + public void test3ArgCtor() throws Exception { + + String source = "YNL312W"; + String type = "pd"; + String target = "YPL111W"; + String raw = source + " " + type + " " + target; + + Interaction inter0 = new Interaction(raw, delim); + assertTrue(inter0.getSource().equals(source)); + assertTrue(inter0.getType().equals(type)); + assertTrue(inter0.numberOfTargets() == 1); + assertTrue(inter0.getTargets()[0].equals(target)); + } + + @Test + public void test1ArgCtor() throws Exception { + + String rawText0 = "YNL312W pp YPL111W"; + Interaction inter0 = new Interaction(rawText0, delim); + assertTrue(inter0.getSource().equals("YNL312W")); + assertTrue(inter0.getType().equals("pp")); + assertTrue(inter0.numberOfTargets() == 1); + assertTrue(inter0.getTargets()[0].equals("YPL111W")); + + String rawText1 = "YPL075W pd YDR050C YGR254W YHR174W"; + Interaction inter1 = new Interaction(rawText1, delim); + assertTrue(inter1.getSource().equals("YPL075W")); + assertTrue(inter1.getType().equals("pd")); + assertTrue(inter1.numberOfTargets() == 3); + assertTrue(inter1.getTargets()[0].equals("YDR050C")); + assertTrue(inter1.getTargets()[1].equals("YGR254W")); + assertTrue(inter1.getTargets()[2].equals("YHR174W")); + } + + /** a degenerate form has -only- a source node: no interaction type + * and no target node + */ + @Test + public void test1ArgCtorOnDegenerateFrom() throws Exception { + String rawText0 = "YNL312W"; + Interaction inter0 = new Interaction(rawText0, delim); + assertTrue(inter0.getSource().equals("YNL312W")); + assertTrue(inter0.getType() == null); + assertTrue(inter0.numberOfTargets() == 0); + } + +} Added: core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewProducerTest.java =================================================================== --- core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewProducerTest.java (rev 0) +++ core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewProducerTest.java 2010-08-20 21:43:30 UTC (rev 21504) @@ -0,0 +1,160 @@ +package org.cytoscape.io.internal.read.sif; + +import static org.junit.Assert.*; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.io.File; +import java.io.FileInputStream; + +import java.util.List; + +import static org.mockito.Mockito.*; + + +import org.cytoscape.test.support.NetworkTestSupport; +import org.cytoscape.test.support.NetworkViewTestSupport; + +import org.cytoscape.io.internal.util.ReadUtils; +import org.cytoscape.io.internal.util.StreamUtilImpl; + +import org.cytoscape.work.TaskMonitor; +import org.cytoscape.model.CyNetwork; +import org.cytoscape.model.CyNetworkFactory; +import org.cytoscape.model.CyNode; +import org.cytoscape.model.CyEdge; +import org.cytoscape.view.model.CyNetworkView; +import org.cytoscape.view.model.CyNetworkViewFactory; +import org.cytoscape.view.layout.CyLayouts; +import org.cytoscape.view.layout.CyLayoutAlgorithm; + +public class SIFNetworkViewProducerTest { + + TaskMonitor taskMonitor; + CyNetworkFactory netFactory; + CyNetworkViewFactory viewFactory; + ReadUtils readUtil; + CyLayouts layouts; + + @Before + public void setUp() throws Exception { + taskMonitor = mock(TaskMonitor.class); + + CyLayoutAlgorithm def = mock(CyLayoutAlgorithm.class); + + layouts = mock(CyLayouts.class); + when(layouts.getDefaultLayout()).thenReturn(def); + + NetworkTestSupport nts = new NetworkTestSupport(); + netFactory = nts.getNetworkFactory(); + + NetworkViewTestSupport nvts = new NetworkViewTestSupport(); + viewFactory = nvts.getNetworkViewFactory(); + + readUtil = new ReadUtils( new StreamUtilImpl() ); + } + + /** + * 'typical' means that all lines have the form "node1 pd node2 [node3 node4 ...] + */ + @Test + public void testReadFromTypicalFile() throws Exception { + + CyNetworkView[] views = getViews("sample.sif"); + + CyNetwork net = checkNetwork(views, 31, 27); + + findInteraction(net, "YNL312W", "YPL111W", "pd", 1); + } + + /** all lines have the degenerate form "node1" + * that is, with no interaction type and no target + */ + @Test + public void testReadFileWithNoInteractions() throws Exception { + CyNetworkView[] views = getViews("degenerate.sif"); + + CyNetwork net = checkNetwork(views, 9, 0); + + for ( CyNode n : net.getNodeList() ) + assertTrue( n.attrs().get("name",String.class).startsWith("Y") ); + } + + @Test + public void testReadMultiWordProteinsFile() throws Exception { + + CyNetworkView[] views = getViews("multiWordProteins.sif"); + + CyNetwork net = checkNetwork(views, 28, 31); + + findInteraction(net,"26S ubiquitin dependent proteasome", + "I-kappa-B-alpha", "interactsWith", 1); + findInteraction(net,"TRAF6", "RIP2", "interactsWith", 13); + findInteraction(net,"TRAF6", "ABCDE oopah", "interactsWith", 13); + findInteraction(net,"TRAF6", "HJKOL coltrane", "interactsWith", 13); + + } + + @Test + public void testReadMultiWordProteinsFileWithErrantSpaces() throws Exception { + + CyNetworkView[] views = getViews("multiWordProteinsFileTrailingSpaces.sif"); + + CyNetwork net = checkNetwork(views, 28, 31); + + findInteraction(net,"26S ubiquitin dependent proteasome", + "I-kappa-B-alpha", "interactsWith", 1); + findInteraction(net,"TRAF6", "RIP2", "interactsWith", 13); + findInteraction(net,"TRAF6", "ABCDE oopah", "interactsWith", 13); + findInteraction(net,"TRAF6", "HJKOL coltrane", "interactsWith", 13); + } + + + // will fail if it doesn't find the specified interaction + private void findInteraction(CyNetwork net, String source, String target, + String interaction, int count) { + for ( CyNode n : net.getNodeList() ) { + if ( n.attrs().get("name",String.class).equals(source) ) { + List<CyNode> neigh = net.getNeighborList(n,CyEdge.Type.ANY); + assertEquals(count,neigh.size()); + for ( CyNode nn : neigh ) { + if ( nn.attrs().get("name",String.class).equals(target) ) { + List<CyEdge> con = net.getConnectingEdgeList(n,nn, CyEdge.Type.ANY); + for ( CyEdge e : con ) { + if ( e.attrs().get("interaction",String.class).equals(interaction) ) { + return; + } + } + } + } + } + } + fail("couldn't find interaction: " + source + " " + interaction + " " + target ); + } + + // in the SIF world, we only ever create one view for one network + private CyNetwork checkNetwork(CyNetworkView[] views, int numNodes, int numEdges) { + assertNotNull(views); + assertEquals(1,views.length); + + CyNetwork net = views[0].getModel(); + + assertNotNull( net ); + + assertEquals( numNodes, net.getNodeCount() ); + assertEquals( numEdges, net.getEdgeCount() ); + + return net; + } + + private CyNetworkView[] getViews(String file) throws Exception { + File f = new File("./src/test/resources/testData/sif/" + file); + SIFNetworkViewProducer snvp = new SIFNetworkViewProducer(new FileInputStream(f), + readUtil, layouts, viewFactory, netFactory); + snvp.run(taskMonitor); + + return snvp.getNetworkViews(); + } +} Added: core3/io-impl/trunk/src/test/resources/testData/sif/degenerate.sif =================================================================== --- core3/io-impl/trunk/src/test/resources/testData/sif/degenerate.sif (rev 0) +++ core3/io-impl/trunk/src/test/resources/testData/sif/degenerate.sif 2010-08-20 21:43:30 UTC (rev 21504) @@ -0,0 +1,9 @@ +YNL312W +YNL314W +YOL051W +YOR194C +YOR377W +YPL075W +YPL248C +YPL259C +YPR065W Added: core3/io-impl/trunk/src/test/resources/testData/sif/multiWordProteins.sif =================================================================== --- core3/io-impl/trunk/src/test/resources/testData/sif/multiWordProteins.sif (rev 0) +++ core3/io-impl/trunk/src/test/resources/testData/sif/multiWordProteins.sif 2010-08-20 21:43:30 UTC (rev 21504) @@ -0,0 +1,30 @@ +LPS interactsWith TLR4 +LPS interactsWith MD-2 +LPS interactsWith TLR4 +ADOH interactsWith LPS +TLR4 interactsWith MyD88 +TLR4 interactsWith IRAK Complex +TLR4 interactsWith TIRAP +TRAF6 interactsWith IRAK Complex +Uev1a/UBc13 Ubiquitin-conjugating Complex interactsWith TRAF6 +TRAF6 interactsWith TAK1 +A20 interactsWith TRAF6 +TAK1 interactsWith IKK-beta +IKK-beta interactsWith I-kappa-B-alpha +I-kappa-B-alpha interactsWith p50 +I-kappa-B-alpha interactsWith p65 +SCF Ubiquitin Ligase interactsWith I-kappa-B-alpha +26S ubiquitin dependent proteasome interactsWith I-kappa-B-alpha +TLR4 interactsWith TRIF +TRIF interactsWith IRF3 +IRAK4 interactsWith MyD88 +IRAK4 interactsWith IRAK1 +IRAK1 interactsWith MyD88 +IRAK1 interactsWith TRAF6 +TRAF6 interactsWith CD40 +TRAF6 interactsWith RANK +TRAF6 interactsWith IRAK1 +TRAF6 interactsWith IRAK2 +TRAF6 interactsWith IRAKM +TRAF6 interactsWith RIP2 ABCDE oopah HJKOL coltrane + Added: core3/io-impl/trunk/src/test/resources/testData/sif/multiWordProteinsFileTrailingSpaces.sif =================================================================== --- core3/io-impl/trunk/src/test/resources/testData/sif/multiWordProteinsFileTrailingSpaces.sif (rev 0) +++ core3/io-impl/trunk/src/test/resources/testData/sif/multiWordProteinsFileTrailingSpaces.sif 2010-08-20 21:43:30 UTC (rev 21504) @@ -0,0 +1,30 @@ +LPS interactsWith TLR4 +LPS interactsWith MD-2 +LPS interactsWith TLR4 +ADOH interactsWith LPS +TLR4 interactsWith MyD88 +TLR4 interactsWith IRAK Complex +TLR4 interactsWith TIRAP +TRAF6 interactsWith IRAK Complex +Uev1a/UBc13 Ubiquitin-conjugating Complex interactsWith TRAF6 +TRAF6 interactsWith TAK1 +A20 interactsWith TRAF6 +TAK1 interactsWith IKK-beta +IKK-beta interactsWith I-kappa-B-alpha +I-kappa-B-alpha interactsWith p50 +I-kappa-B-alpha interactsWith p65 +SCF Ubiquitin Ligase interactsWith I-kappa-B-alpha +26S ubiquitin dependent proteasome interactsWith I-kappa-B-alpha +TLR4 interactsWith TRIF +TRIF interactsWith IRF3 +IRAK4 interactsWith MyD88 +IRAK4 interactsWith IRAK1 +IRAK1 interactsWith MyD88 +IRAK1 interactsWith TRAF6 +TRAF6 interactsWith CD40 +TRAF6 interactsWith RANK +TRAF6 interactsWith IRAK1 +TRAF6 interactsWith IRAK2 +TRAF6 interactsWith IRAKM +TRAF6 interactsWith RIP2 ABCDE oopah HJKOL coltrane + Added: core3/io-impl/trunk/src/test/resources/testData/sif/sample.sif =================================================================== --- core3/io-impl/trunk/src/test/resources/testData/sif/sample.sif (rev 0) +++ core3/io-impl/trunk/src/test/resources/testData/sif/sample.sif 2010-08-20 21:43:30 UTC (rev 21504) @@ -0,0 +1,25 @@ +YNL312W pd YPL111W +YNL314W pd YIR028W +YNL314W pd YIR031C +YOL051W pd YBR018C +YOL051W pd YBR019C +YOL051W pd YBR020W +YOL051W pd YLR081W +YOR194C pd YCL018W +YOR377W pd YFL018C +YPL075W pd YAL038W +YPL075W pd YCR012W +YPL075W pd YDR050C YGR254W YHR174W +YPL075W pd YOL086C +YPL248C pd MEL1 +YPL248C pd YBR018C +YPL248C pd YBR019C +YPL248C pd YBR020W +YPL248C pd YJR048W +YPL248C pd YLR081W +YPL248C pd YML051W +YPL248C pd YOR120W +YPL259C pd YGR209C +YPR065W pd YDR044W +YPR065W pd YJR047C +YPR065W pd YPR065W -- You received this message because you are subscribed to the Google Groups "cytoscape-cvs" group. To post to this group, send email to cytoscape-...@googlegroups.com. To unsubscribe from this group, send email to cytoscape-cvs+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/cytoscape-cvs?hl=en.