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.

Reply via email to