From: Arne M. <arn...@gm...> - 2008-08-15 16:06:33
|
Hi Chris, Thanks for the detailed list of options! I'll certainly check them before writing my own software (using OLWAPI). Actually I've told our annotator to use obo-edit, but the problem is that there are about 1700 terms (a simple list, no hierarchy at all) in our in-house vocab for organ anatomy. These terms need to be mapped into the MA ontology. E.g. our terms look like this: ... AORTA, PROBE 1 AORTA, PROBE 2 AORTA, PROBE 3 AORTA, PROBE 4 AORTA, PROBE 5 AORTA, SAMPLE 1 AORTA, SAMPLE 2 ... People have just added to the vocab. as they needed for a certain project. Now I need to make sure that all these "terms" (in fact this just free text!) to the aorta term in MA (as dbxrefs I guess). There are more complex examples such as "BRONCHUS PRINCIPALIS (LINKS)", bronchus principales is not in MA, but I guess could just be mapped to "main bronchus" in MA, then the "LINKS" in our annotation (German and meaning "left") should either be ignored or we'd need to add a new term to MA to indicate that there's a left main broncus (I'm an expert in anatomy). I guess that browsing MA with obo-edit and adding synonyms and dbxrefs for 1600 of these terms is very tedious (at least our annotator told be that he's not gonna do it that way :-( ). Ok, some of these terms could be mapped directly to a term in MA because it's a 100% string match. My idea is to use some oracle soundex text comparsion to match each of our text strings in the vocab to terms in MA, so that the annotator can quickly go through a table and click ok (and this way inserting a dbxref to that term) for the suggested match, or somehow search for the term he's most happy with. Can Phenote do this sort of thing? Not sure if I really need a DB backend, I guess for a project always has a DB backend ;-) Hope this clarifies my problem, and of course I'm happy for comments and suggestions! thanks a lot for your help, Arne On Thu, Aug 14, 2008 at 9:14 PM, Chris Mungall <cj...@be...> wrote: > > Previous caveats aside, looking at your requirements it seems that you > would prefer > > - A java API > - A database backend (though it's not clear why for this particular > project, it seems it could be done in-memory using file based > persistence) > - Some kind of mapping capabilities > > I'm not so clear on the last point. You mention the RO and cross- > products. I'm not totally sure where they come in. If you are > developing your own ontologies then you should of course use relations > from the RO or defined along the same principles. You should attempt > to give your terms necessary and sufficient conditions, referencing > other ontologies if appropriate. But this doesn't seem to be what > you're doing - instead you are making mappings from ad-hoc local > ontologies to a reference ontology. Here the relation would be one of > equivalence or near-equivalence. > > You mention writing a tool to help you with the mappings. You should > first look at CORBA, written by Stuart Aitken, for doing just this > sort of thing. You may also want to look at the Protege PROMPT plugin. > Both these are java UIs that provide visual support for this kind of > task. It sounds as if your ad-hoc ontologies contain little or no > structure, in which case you don't need any kind of visualization of > structural differences, in which case I don't see why plain OBO-Edit > or Protege doesn't suit your requirements. If you want a nice tabular > interface with ontology term lookup support Phenote would also suit > your requirements. I would evaluate these options before going near an > API and writing your own UI. > > As far as APIs go, there is a partial list here: > > http://www.geneontology.org/GO.tools.software-libraries.shtml > > (need to include onto-perl on this list) > > Narrowing down to java APIs: > > OBO API : as you've noted the main drawback here is lack of > documentation. The junit suite is quite comprehensive though. If > you're interested in writing your tool as a oboedit plugin using this > library you should join the obo-edit-dev list. The database backend > support is currently patchy. > > OWLAPI : I second Allyson's recommendation. In my opinion this is the > best java API for interfacing with OWL, and it can handle OBO too. > However, you really need to be comfortable with description logic > concepts before diving in here. It may be too heavyweight for your > particular requirements (but the same might be said for all the > choices here). AFAIK there is no database backend. The OWLAPI is at > the guts of Protege 4 (but not Protege 3.x) > > Protege API : I'm less familiar with this, but there is a very active > support list as Trish mentions. This API is at the guts of Protege > 3.x. There is a JDBC backend. > > OLS : Your summary is correct. Yes, it uses an older version of the > OBO API for parsing files, but wraps it in a simpler model. > > Cheers > Chris > > > On Aug 14, 2008, at 6:27 AM, Arne Muller wrote: > > > Dear All, > > > > I'm new to this list and don't know much about ontologies in general > > (I worked a bit with GO some time ago). > > > > Let me explain my problem: We have several related vocabularies (non- > > hierarchical and redundant because of different spellings etc ...) > > to describe organs and tissues in our department, and we need to map > > each of these vocabs to all of our other legacy vocabs that describe > > similar concepts. We'd like to use the adult mouse anatomy ontology > > and modify/extend it with additional terms (if necessary), synonyms > > and dbXrefs. Most of our vocabs should be mapped as dbXrefs to > > existing terms in the MA ontology. The goal is that different units > > in our department use slightly different vocabulary to describe > > samples, and we now need link these different system (always the > > same old story ... ;-). > > > > For the moment I'm not planning to turn our messy legacy vocabs into > > OBO formated ontologies and to map them via cross products and the > > OBO relation ontology - though this might be the most proper way to > > do ... (comments are welcome). > > > > I'll have to write an "easy to use" tool that allows our data > > curator to easily map the legacy vocabs as dbXrefs of terms in the > > MA ontology. The question is, how am I gonna do this? I've a fairly > > good idea of how my software (java webapp) should look like, but are > > there any APIs and implementations of the OBO model as well as a DB > > schema and mappings between the model and the schema? > > > > I've had a look into the OLS from the EBI that seems to be fairly > > simple (which is good ;-) and that uses the oboedit.jar somewhere at > > the back-end. I've also found something like an obo api on http://wiki.geneontology.org/index.php/OBO-Edit:_Getting_the_Source_Code#.28Optional.29_Getting_the_OBO_API_from_Subclipse > > but so far I've not found any documentation nor examples on how to > > get started. > > > > I'd be happy to hear how developers and bioinformatics people use > > obo in their own tools (I better ask before going DIY ...). > > > > thanks a lot for your comments and help > > +kind regards, > > > > Arne > > > > ------------------------------------------------------------------------- > > This SF.Net email is sponsored by the Moblin Your Move Developer's > > challenge > > Build the coolest Linux based applications with Moblin SDK & win > > great prizes > > Grand prize is a trip for two to an Open Source event anywhere in > > the world > > http://moblin-contest.org/redirect.php?banner_id=100&url=/_______________________________________________ > > Obo-discuss mailing list > > Obo...@li... > > https://lists.sourceforge.net/lists/listinfo/obo-discuss > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Obo-discuss mailing list > Obo...@li... > https://lists.sourceforge.net/lists/listinfo/obo-discuss |