Author: kono Date: 2011-12-08 13:08:22 -0800 (Thu, 08 Dec 2011) New Revision: 27742
Added: core3/impl/trunk/datasource-biogrid-impl/ core3/impl/trunk/datasource-biogrid-impl/pom.xml core3/impl/trunk/datasource-biogrid-impl/src/ core3/impl/trunk/datasource-biogrid-impl/src/main/ core3/impl/trunk/datasource-biogrid-impl/src/main/java/ core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/ core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/ core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/datasource/ core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/datasource/biogrid/ core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/datasource/biogrid/internal/ core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/datasource/biogrid/internal/BioGridDataSoruceBuilder.java core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/datasource/biogrid/internal/BiogridDataLoader.java core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/datasource/biogrid/internal/CyActivator.java core3/impl/trunk/datasource-biogrid-impl/src/main/resources/ core3/impl/trunk/datasource-biogrid-impl/src/main/resources/biogrid/ core3/impl/trunk/datasource-biogrid-impl/src/main/resources/biogrid/BIOGRID-ORGANISM-3.1.83.mitab.zip core3/impl/trunk/datasource-biogrid-impl/src/test/ core3/impl/trunk/datasource-biogrid-impl/src/test/java/ Log: Datasource bundle for BioGRID. Added: core3/impl/trunk/datasource-biogrid-impl/pom.xml =================================================================== --- core3/impl/trunk/datasource-biogrid-impl/pom.xml (rev 0) +++ core3/impl/trunk/datasource-biogrid-impl/pom.xml 2011-12-08 21:08:22 UTC (rev 27742) @@ -0,0 +1,66 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <parent> + <groupId>org.cytoscape</groupId> + <artifactId>impl-parent</artifactId> + <version>3.0.0-alpha8-SNAPSHOT</version> + </parent> + + <modelVersion>4.0.0</modelVersion> + <artifactId>datasource-biogrid-impl</artifactId> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <bundle.symbolicName>org.cytoscape.datasource-biogrid-impl</bundle.symbolicName> + <bundle.namespace>org.cytoscape.datasource.biogrid.internal</bundle.namespace> + </properties> + + <packaging>bundle</packaging> + + <build> + <plugins> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <version>${maven-bundle-plugin.version}</version> + <extensions>true</extensions> + <configuration> + <instructions> + <Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName> + <Bundle-Version>${project.version}</Bundle-Version> + <Export-Package>!${bundle.namespace}.*</Export-Package> + <Private-Package>${bundle.namespace}.*</Private-Package> + <Bundle-Activator>${bundle.namespace}.CyActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + + + <dependencies> + <!-- Cytoscape Core API --> + <dependency> + <groupId>org.cytoscape</groupId> + <artifactId>datasource-api</artifactId> + </dependency> + <dependency> + <groupId>org.cytoscape</groupId> + <artifactId>application-api</artifactId> + </dependency> + + + <!-- Testing --> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + <scope>test</scope> + </dependency> + </dependencies> +</project> Added: core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/datasource/biogrid/internal/BioGridDataSoruceBuilder.java =================================================================== --- core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/datasource/biogrid/internal/BioGridDataSoruceBuilder.java (rev 0) +++ core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/datasource/biogrid/internal/BioGridDataSoruceBuilder.java 2011-12-08 21:08:22 UTC (rev 27742) @@ -0,0 +1,26 @@ +package org.cytoscape.datasource.biogrid.internal; + +import java.io.File; +import java.io.IOException; +import java.util.Properties; +import java.util.Set; + +import org.cytoscape.datasource.DataSource; +import org.osgi.framework.BundleContext; + +public class BioGridDataSoruceBuilder { + + public BioGridDataSoruceBuilder(final BundleContext bc, final File settingFileLocation) { + BiogridDataLoader task = new BiogridDataLoader(settingFileLocation); + try { + task.extract(); + } catch (IOException e) { + e.printStackTrace(); + } + Set<DataSource> dsSet = task.getDataSources(); + + for(final DataSource ds: dsSet) { + bc.registerService("org.cytoscape.datasource.DataSource", ds, new Properties()); + } + } +} Added: core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/datasource/biogrid/internal/BiogridDataLoader.java =================================================================== --- core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/datasource/biogrid/internal/BiogridDataLoader.java (rev 0) +++ core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/datasource/biogrid/internal/BiogridDataLoader.java 2011-12-08 21:08:22 UTC (rev 27742) @@ -0,0 +1,128 @@ +package org.cytoscape.datasource.biogrid.internal; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; + +import org.cytoscape.datasource.DataSource; +import org.cytoscape.datasource.DefaultDataSource; +import org.cytoscape.io.DataCategory; + +public class BiogridDataLoader { + + // Default resource file location. + private static final String DEF_RESOURCE = "biogrid/BIOGRID-ORGANISM-3.1.83.mitab.zip"; + + public final static int BUF_SIZE = 1024; + private static final String LOCAL = "biogrid"; + private URL source; + private File localFile; + + private static final Map<String, String[]> FILTER = new HashMap<String, String[]>(); + + private final Set<DataSource> sources; + + + static { + FILTER.put("Homo_sapiens", new String[]{"Human Interactome", "BioGRID", "Human Interactome from BioGRID database"}); + FILTER.put("Saccharomyces_cerevisiae", new String[]{"Yeast Interactome", "BioGRID", "Yeast Interactome from BioGRID database"}); + FILTER.put("Drosophila_melanogaster", new String[]{"Fly Interactome", "BioGRID","Fly Interactome from BioGRID database"} ); + FILTER.put("Mus_musculus", new String[]{"Mouse Interactome", "BioGRID","Mouse Interactome from BioGRID database"}); + } + + public BiogridDataLoader(final File settingFileLocation) { + this(null, settingFileLocation); + } + + public BiogridDataLoader(final URL dataSource, final File settingFileLocation) { + if(dataSource == null) + source = this.getClass().getClassLoader().getResource(DEF_RESOURCE); + else + this.source = dataSource; + + this.sources = new HashSet<DataSource>(); + + localFile = new File(settingFileLocation, LOCAL); + if (localFile.exists() == false) + localFile.mkdir(); + } + + + /** + * Extract list of files from resource (local or remote) + * + * @throws IOException + */ + void extract() throws IOException { + ZipInputStream zis = new ZipInputStream(source.openStream()); + + try { + // Extract list of entries + ZipEntry zen = null; + String entryName = null; + + while ((zen = zis.getNextEntry()) != null) { + entryName = zen.getName(); + // Remove .txt + String newName = entryName.replace(".txt", ""); + final String[] data = createName(newName); + if (data==null) + continue; + + File outFile = new File(localFile, newName); + + processOneEntry(outFile, zis); + zis.closeEntry(); + + final DataSource ds = new DefaultDataSource(data[0], data[1], data[2], DataCategory.NETWORK, outFile.toURI().toURL()); + sources.add(ds); + } + + } finally { + if (zis != null) + zis.close(); + zis = null; + } + } + + + private void processOneEntry(File outFile, InputStream is) throws IOException { + outFile.createNewFile(); + FileWriter outWriter = new FileWriter(outFile); + String line; + final BufferedReader br = new BufferedReader(new InputStreamReader(is)); + + int count = 0; + while ((line = br.readLine()) != null) { + if (line.startsWith("#")) + continue; + outWriter.write(line + "\n"); + count++; + } + outWriter.close(); + } + + private String[] createName(String name) { + for (String key : FILTER.keySet()) { + if (name.contains(key)) { + return FILTER.get(key); + } + } + + return null; + } + + public Set<DataSource> getDataSources() { + return this.sources; + } +} Added: core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/datasource/biogrid/internal/CyActivator.java =================================================================== --- core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/datasource/biogrid/internal/CyActivator.java (rev 0) +++ core3/impl/trunk/datasource-biogrid-impl/src/main/java/org/cytoscape/datasource/biogrid/internal/CyActivator.java 2011-12-08 21:08:22 UTC (rev 27742) @@ -0,0 +1,19 @@ +package org.cytoscape.datasource.biogrid.internal; + +import org.cytoscape.application.CyApplicationConfiguration; +import org.cytoscape.service.util.AbstractCyActivator; +import org.osgi.framework.BundleContext; + +public class CyActivator extends AbstractCyActivator { + public CyActivator() { + super(); + } + + public void start(BundleContext bc) { + CyApplicationConfiguration cyApplicationConfigurationServiceRef = getService(bc, + CyApplicationConfiguration.class); + + BioGridDataSoruceBuilder builder = new BioGridDataSoruceBuilder(bc, + cyApplicationConfigurationServiceRef.getSettingLocation()); + } +} \ No newline at end of file Added: core3/impl/trunk/datasource-biogrid-impl/src/main/resources/biogrid/BIOGRID-ORGANISM-3.1.83.mitab.zip =================================================================== (Binary files differ) Property changes on: core3/impl/trunk/datasource-biogrid-impl/src/main/resources/biogrid/BIOGRID-ORGANISM-3.1.83.mitab.zip ___________________________________________________________________ Added: svn:mime-type + application/octet-stream -- 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.
