Bridge Db Martijn van Iersel Bi GCa T
Bridge. Db Martijn van Iersel Bi. GCa. T Maastricht
The 7 Virtues of Bioinformatics 1. 2. 3. 4. 5. 6. 7. Solve a problem Start small Modularity Design for code re-use Open Source Attention to detail Eat your own dog-food
Solve a problem • What problem are you solving?
Problem: Identifier Mapping Entrez Gene 3643 ? Agilent reporter A 46_P 45789
Solution: Conversion tools
Problem: Usability • • Check for double IDs Check for missing IDs Only 1000 at once Check alignment of Excel columns • Manual • Error-prone
Solution: Built-in Mapping • Generic bioinformatics platforms should have identifier mapping built-in. Batteries Included Bio. Conductor Path. Visio Cytoscape. . .
Solution: Built-in Mapping Entrez Gene 3643 Mapping service Agilent reporter A 46_P 45789
Problem: Which mapping service? • • Synergizer Ens. Mart DAVID CRONOS Alias. Server Match. Miner Onto. Translate
Solution: Abstraction Layer
Solution: Abstraction Layer class IDMapper. Rdb relational database interface IDMapper class IDMapper. File tab-delimited text class IDMapper. Biomart web service
Tools Cy. Thesaurus Network Merge Wiki Pathways Path. Visio Cytoscape Plugins Mapping Services Bridge. Db Internet webservices Bio. Mart PICR Tab. Local delimited Bridge. Db- Database text files REST BMC Bioinformatics. 2010 Jan 4; 11(1): 5
Bridge. Db interface 1: JAVA interface 2: REST interface
API Overview Bridge. Db. connect(. . . ) IDMapper. map. ID(. . . ) Xref. get. Url() Data. Source. get. Url()
Easy & Flexible Code
Easy & Flexible Code
Easy & Flexible Code
Bridge. Db interface 1: JAVA interface 2: REST interface
REST API http: //webservice. bridgedb. org/Human/xrefs/L/1234 ILMN_1713029 Illumina 3255967 Affy NP_001025186 Ref. Seq IPI 00005930 IPI GO: 0042752 Gene. Ontology NM_033282 Ref. Seq 3255968 Affy 94233 Entrez Gene ENSG 00000122375 Ensembl Human 234226_at Affy A 6 NEB 4 Uniprot/Tr. EMBL 0001780601 Illumina GO: 0008020 Gene. Ontology 606665 OMIM A_23_P 24234 Agilent 14449 HUGO
REST API http: //<Base URL>/<Species>/<function> [ /<argument>. . . ] http: //webservice. bridgedb. org/Human/xrefs/L/1234 http: //webservice. bridgedb. org/Human/search/ENSG 00000122375 http: //webservice. bridgedb. org/Human/attribute. Set http: //webservice. bridgedb. org/Human/properties http: //webservice. bridgedb. org/Human/target. Data. Sources http: //webservice. bridgedb. org/Human/attributes/L/3643 http: //localhost: 8183/Human/xrefs/L/3643
R Example
Types of Mapping Services Type Advantages Webservice + always up-to-date + no disk-space required + no installation required + highly efficient + versioned: updated only when you want to. + easy to customize Relational Database Flat file
Available Mapping Services Name Type Maintainer Gene Databases (Ensembl based) Database Us Metabolite databases (HMDB-based) Database Us Bridge. Webservice Us Bio. Mart Webservice EBI CRONOS Webservice Hemholtz Zentrum Synergizer Webservice Harvard Medical School PICR Webservice EBI
Problem: Custom Microarrays ? Custom probe #QXZCY!34
Solution: Stacking Ens. Mart Custom table
Ensembl Entrez Custom microarray Relation defined by mapping source A Relation defined by mapping source B Inferred, transitive relationship
Comparison
Comparison
Cy. Thesaurus
MIRIAM Resources http: //www. ebi. ac. uk/miriam/
Solution: MIRIAM Resources Regular expression for autodetection Pattern for generating URLs Link to documentation
The 7 Virtues of Bioinformatics 1. 2. 3. 4. 5. 6. 7. Solve a problem Start small Eat your own dog-food Attention to detail Modularity Design for code re-use Open Source
A Question to Linus Torvalds Q: “Do you have any tips for people who want to undertake a large open source project? ” A: “Nobody should start to undertake a large project. You start with a small trivial project, and you should never expect it to get large. … … If it doesn't solve some fairly immediate need, it's almost certainly over-designed. … …You need to get something half-way useful first, and then others will say "hey, that almost works for me", and they'll get involved in the project”
Also from Linus Torvalds “I'm right and anyone who disagrees is stupid and ugly” “My name is Linus Torvalds and I am your god. ”
Code Re-Use • Reinventing the wheel is one of the 7 Deadly sins of Bioinformatics
Code Re-Use
Code Re-Use Q: How to design re-usable code? A: Actually use it in more than one project from the start Cytoscape bridgedb Path. Visio
Modularity
Modularity
Modularity
Open source • • • Public money -> Public code Reproducibility Academic ideal Trust Insurance against vendor lock-in
Open source • Now where all those free programmers?
Open Source Web site Bug tracker Version control Mailing list
http: //www. helixsoft. nl/blog
Eat your own dog food
Eat your own dog food • Are you named “alkfdjlkdsf”? • Why not “Hélène O’Brian? ” • …or “Bobby Tables”?
Eat your own dog food • • Real data has missing values Real data has commas instead of dots Real data has duplicate identifiers Real data starts with “ID” in the first cell* *Which Excel doesn’t like
User friendliness
User friendliness
Hallway usability testing • Grab a passer-by from the hallway and put them in front of your program • (We usually use students)
Thanks Alex Pico (UCSF) Kristina Hanspers (UCSF) Isaac Ho (UCSF) Bruce Conklin (UCSF) Jianjiong Gao (U. Missouri) Thomas Kelder (Bi. GCa. T, Maastricht) Chris Evelo (Bi. GCa. T, Maastricht) Brian Turner (U. Toronto) Igor Rodchenkov (U. Toronto) http: //www. bridgedb. org
Ways to run Bridge. Db (1/3)
Ways to run Bridge. Db (2/3)
Ways to run Bridge. Db (3/3)
Open source • Is it difficult?
Open source [bridgedb: /] @gladstone = rw @bigcat = rw
Open source [bridgedb: /] @gladstone = rw @bigcat = rw * = r
- Slides: 57