== Biomart API for Cytoscape == === Use Case === * ''I have a network in Cytoscape session and want to import some attributes ONLY FOR genes which exists on current network.'' * ''I want to import ID conversion table from Ensemble Gene ID to HGNC Symbol for all human genes'' === Function Request === * Cytoscape sends list of IDs/terms as a query. This list should be included returned data table. Otherwise, Cytoscape cannot map any attributes. * Cytoscape BioMart client needs nicer GUI just like ''MartView'' web UI. * Need to create category-oriented list of attributes. * Need to tell user Max-selectable value === Desired API === {{{ public interface BioMartUtil { public Collection getMartList(URL martLocation); public Collection getIDListFilter(String martName); public Collection getBooleanListFilter(String martName); // Simply returns list of entry as table. FIRST COLUMN IS ALWAYS ID LIST SENT AS QUERY. public Collection getResult(Query query); } }}} === Implementation Plan === * REST API does not support some of the metadata, such as sub-category of attributes and filters * To extract those metadata fields, I need to use SOAP. However, SOAP has some overhead and not as efficient as REST. ==== Solution ==== * For building user interface, use SOAP. Then the client has full-access to the metadata. * Send actual Query through REST. This is faster than SOAP.