Git Product home page Git Product logo

bridgedb-app's Introduction

BridgeDb App for Cytoscape 3

BridgeDb App for Cytoscape 3: ID mapping for Cytoscape networks.

Build instructions

  • Unzip bridgeDB-dependencies.zip into your local maven repository.
  • Unix/Mac: ~/.m2/repository/
  • Windows: C:\Documents and Settings{your-username}.m2\repository\
  • cd into bridgedb.cytoscape directory and run mvn clean install
  • Find the newly built JAR in target/

bridgedb-app's People

Contributors

alexanderpico avatar egonw avatar jacks808 avatar jjgao avatar zhangch avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

bridgedb-app's Issues

remove null url from bridgedb rest client

Also in the ID Mapping Resource Config, in the Base URL drop-down for
BridegDb services, there's webservice.bridgedb.org/null listed multiple
times. Maybe this is a problem with bridgedb, but it might be a good idea to
check before adding urls to the list.

Syngizer problem

I could get GI using Synergizer, but I keep getting a backtrace:
java.lang.NullPointerException
at org.cytoscape.filter.internal.column.ColumnFilter.accepts(ColumnFilter.java:190)
at org.cytoscape.filter.internal.column.ColumnFilter.accepts(ColumnFilter.java:24)
at org.cytoscape.filter.internal.composite.CompositeFilterImpl.accepts(CompositeFilterImpl.java:106)
at org.cytoscape.filter.internal.view.FilterWorker.doWork(FilterWorker.java:62)
at org.cytoscape.filter.internal.view.LazyWorkQueue$1.run(LazyWorkQueue.java:35)
at java.lang.Thread.run(Thread.java:744)
java.lang.NullPointerException
at org.cytoscape.filter.internal.column.ColumnFilter.accepts(ColumnFilter.java:190)
at org.cytoscape.filter.internal.column.ColumnFilter.accepts(ColumnFilter.java:24)
at org.cytoscape.filter.internal.composite.CompositeFilterImpl.accepts(CompositeFilterImpl.java:106)
at org.cytoscape.filter.internal.view.FilterWorker.doWork(FilterWorker.java:62)
at org.cytoscape.filter.internal.view.LazyWorkQueue$1.run(LazyWorkQueue.java:35)
at java.lang.Thread.run(Thread.java:744)
java.lang.NullPointerException
at java.net.URLEncoder.encode(URLEncoder.java:205)
at org.bridgedb.webservice.bridgerest.BridgeRest$UrlBuilder.named(BridgeRest.java:255)
at org.bridgedb.webservice.bridgerest.BridgeRest.mapID(BridgeRest.java:346)
at org.bridgedb.impl.InternalUtils.mapMultiFromSingle(InternalUtils.java:69)
at org.bridgedb.webservice.bridgerest.BridgeRest.mapID(BridgeRest.java:331)
at org.bridgedb.IDMapperStack.mapIDnormal(IDMapperStack.java:294)
at org.bridgedb.IDMapperStack.mapID(IDMapperStack.java:274)
at org.bridgedb.cytoscape.internal.util.IDMapperWrapper.mapID(IDMapperWrapper.java:117)
at org.bridgedb.cytoscape.internal.AttributeBasedIDMappingImpl.map(AttributeBasedIDMappingImpl.java:111)
at org.bridgedb.cytoscape.internal.task.AttributeBasedIDMappingTask.run(AttributeBasedIDMappingTask.java:109)
at org.cytoscape.work.internal.task.JDialogTaskManager$TaskRunnable.innerRun(JDialogTaskManager.java:321)
at org.cytoscape.work.internal.task.JDialogTaskManager$TaskRunnable.run(JDialogTaskManager.java:350)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Task-Thread-21-Factory-0x2c0ea67 ERROR [TaskMonitor.org.bridgedb.cytoscape.internal.task.AttributeBasedIDMappingTask] - No IDs were mapped. Please make sure you seleceted the corrected ID mapping resources and source ID types.

BridgeDB not matching properly

Reported from a user:

I just recently started to work with cytoscape and realized that BridgeDB eases my work a lot!
However, what puzzled me was the fact that quite a lot of IDs in my network could not be matched properly.
The BioGRID networks I am using use the gene/protein symbol as identifiers, however, all my files are based on EnsemblIDs.
So I now compared the matched IDs from BridgeDB (symbol->Ensembl) with a matched list from ensembl/biomart.
Apparently, there were quite a lot of IDs that could not be matched by BridgeDB (~250 out of 8000). Even worse, unfortunately, a lot of IDs were matched wrongly.
I figured out that in almost all cases were the IDs were matched incorrectly, the matched EnsemblID actually refers to another gene with almost similar symbols.
I.e. "Abp1" was matched to the Enseml of "Napb1",
"Cno" to the one of "Cnot11",
"Rod" to Neurod1" and so on.
All of them are no synonyms to each other, so I suppose it might be an error in the actual matchin procedure or the bridgedb database itself.
Is this already known?

BioMart -- Mart/Database dropdown box too wide

In ID Mapping Resource Config, with BioMart set as the type, the second
drop-down, for Mart/Database, is too wide (presumably because of one really
long entry), so it gets cutoff. See attached.

Excessive 404 exceptions going to console but nothing to user

Bad parameters in the dialog leads to a case that an exception is thrown for every node in the network.


org.bridgedb.IDMapperException: java.io.IOException: HTTP response: 404 - The server has not found anything matching the request URI
    at org.bridgedb.webservice.bridgerest.BridgeRest$RestCapabilities.isMappingSupported(BridgeRest.java:181)
    at org.bridgedb.cytoscape.internal.IDMapperClientManager$2.run(IDMapperClientManager.java:627)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: HTTP response: 404 - The server has not found anything matching the request URI
    at org.bridgedb.webservice.bridgerest.BridgeRest$UrlBuilder.openReader(BridgeRest.java:273)
    at org.bridgedb.webservice.bridgerest.BridgeRest$UrlBuilder.access$200(BridgeRest.java:197)
    at org.bridgedb.webservice.bridgerest.BridgeRest$RestCapabilities.isMappingSupported(BridgeRest.java:172)

more errors

Consider the following entries:

shared name name GeneID HEKScore JurkatScore protein Name Gene Symbol Gene Synonyms
O15258 O15258 11079 0.0 0.753 RER1_HUMAN Protein RER1 RER1 -
28872818 28872818 0.989 0.967 NP_057857 NefFull_HIV-1 - -
NEF NEF

The first row is a Uniprot ID, the second is a GI number, and the third is just a label. So I figured for illustrative purposes (since I can't map from GI to Uniprot) I would map from Uniprot to a new gene symbol column. If I use the web service (http://webservice.bridgedb.org/Human/attributes/S/O15258?attributeName=Symbol), I get:

Description Protein RER1
Synonyms O95322
Symbol RER1_HUMAN
Type Uniprot/SWISSPROT

OK, good. If I use the BridgeDB app, it tells me that no IDs were mapped. I also see lots of errors in the console:

org.bridgedb.IDMapperException: java.io.IOException: HTTP response: 404 - The server has not found anything matching the request URI
at org.bridgedb.webservice.bridgerest.BridgeRest.getAttributes(BridgeRest.java:466)
at org.bridgedb.IDMapperStack.getAttributes(IDMapperStack.java:338)
at org.bridgedb.cytoscape.internal.util.IDMapperWrapper.mapID(IDMapperWrapper.java:155)

at org.bridgedb.cytoscape.internal.AttributeBasedIDMappingImpl.map(AttributeBasedIDMappingImpl.java:111)
at org.bridgedb.cytoscape.internal.task.AttributeBasedIDMappingTask.run(AttributeBasedIDMappingTask.java:109)
at org.cytoscape.work.internal.task.JDialogTaskManager$TaskRunnable.innerRun(JDialogTaskManager.java:321)
at org.cytoscape.work.internal.task.JDialogTaskManager$TaskRunnable.run(JDialogTaskManager.java:350)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

Caused by: java.io.IOException: HTTP response: 404 - The server has not found anything matching the request URI
at org.bridgedb.webservice.bridgerest.BridgeRest$UrlBuilder.openReader(BridgeRest.java:273)
at org.bridgedb.webservice.bridgerest.BridgeRest$UrlBuilder.access$200(BridgeRest.java:197)
at org.bridgedb.webservice.bridgerest.BridgeRest.getAttributes(BridgeRest.java:454)
... 11 more

I assume that a lot of those are because of the non-matchable attributes (label and GI#), but it looks to me like every entry is getting that error. Any ideas?

Update Key Attribute List (minor)

After performing a mapping, a dialog asks if the user would like to perform another mapping. If you select yes, the interface should update the list of Key Attributes to include the one from the previous mapping. Otherwise, the user needs to close and reopen the interface to access this new column.

allow user to cancel

Doesn't seem like you're checking for the user canceling an operation. This can be really bad, forcing the user to do a force quit...

The problem is that it
is really the ID mapping step that takes the longest time and I cannot
control the internal workflow of BridgeDb. I am thinking of sending
source IDs in small batch (say 100 IDs per time) so that I can
interrupt every 100 IDs. Or maybe I can start a new thread for
BridgeDb mapping and whenever user cancels I kill the thread. Let me
play with them.

Some question about Select a file from file system

Now a have tring to fix a bug about select a mapping database file from loacl file system .

This method is a ActionEvent handle method to process the select button click event

This is the code :

/**
     * handle the click action of select button <br>
     * 2013-9-23:下午1:27:17<br>
     * <br>
     * 
     * @param evt event handle
     */
    private void pgdbButtonActionPerformed(ActionEvent evt) {// GEN-FIRST:event_pgdbButtonActionPerformed
        // In CyToscape 3.x FileUtil is a Interface with non of implementation class 
        // Reading the CyToscape 3.x javaDocs, I have found some docs about this interface
        // the link is : http://chianti.ucsd.edu/cytoscape-3.0.1/API/org/cytoscape/util/swing/FileUtil.html

        // Now I have 2 questions:
        // 0.Do we have to use FileUtil interface to load a file, and where is the impl class or maybe some example
        // 1.Could we use another way to handle this problem

        // using the util provide by CyToscape to load a file from file system  
        File source = FileUtil.getFile(
                "Select a BridgeDb file",       // friendly information 
                FileUtil.LOAD,                              // load strategy 
                new CyFileFilter[] { 
                        new CyFileFilter(                   // file filter, just allow bridge file and pgdb file 
                        new String[] { "bridge", "pgdb" }, "BridgeDb Derby file") });
        //check if there has null arguments 
        if (source == null) {
            return;
        }

        //      this is the impl of CyFileFilter in CyToscape 3.x 
        //      CyFileFilter fileFilter = new BasicCyFileFilter(extensions, contentTypes, description, category, streamUtil);
        //      CyFileFilter fileFilter = new BasicCyFileFilter(extensions, contentTypes, description, category, streamUtil);

        pgdbTextField.setText(source.getPath());
    }// GEN-LAST:event_pgdbButtonActionPerformed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.