MeSH terms in bioperl RE: [Bioperl-l] (no subject)

Heikki Lehvaslaiho heikki at ebi.ac.uk
Tue Jul 29 08:14:18 EDT 2003


Hilmar,

On Tue, 2003-07-29 at 01:48, Hilmar Lapp wrote:
> If I'm not mistaken MeSH is an ontology. I can imagine it'd be pretty  
> useful to pull down MeSH into Bio::Ontology objects. For simple queries  
> you don't usually pull down the entire graph though I guess, so it'd  
> just be Bio::Ontology::Term objects. Does that make sense Heikki?


It does. I guess I got carried away. I'll see how to fit it into 
Ontology mold.

I must say that I like the concept a twig (my term - there must be 
a formal, accepted one?) which gives the context for a term  better than
plain definition. Would it make sense to add into Bio::Ontology classes?

> Is there a complete download as well for which one could write a parser  
> under Bio::OntologyIO?

Not to my knowledge - at least in public domain!

> 	-hilmar
> 
> BTW just for consistent style, we said a while ago that we'd deprecate  
> the each_XXX style in favor of get_XXXXs()/add_XXXX()/remove_XXXXs().

I missed that discussion. Could you point me to it, please.

	-Heikki

> On Monday, July 28, 2003, at 04:10  AM, Heikki Lehvaslaiho wrote:
> 
> > Christophe,
> >
> > OK, the preliminary modules are now in the main trunk.
> >
> > I decided to use the NLM server as it gives a richer selection of
> > options. The implementation allows you to retrieve entries using UID or
> > exact terms, only.
> >
> > If there is interest, it would be easy enough to extend it to find  
> > terms
> > based on substrings, which might be useful. An other useful extension
> > would be to parse synonyms ('Entry Term') from the output.
> >
> > Since a term can appear in more than one position in the MeSH tree
> > hierarchy, a retrieved term has one or more 'twigs' listing parent,
> > sister and child terms that define its role. Any of these other term
> > strings can be then used to navigate the tree.
> >
> >
> >  use Bio::DB::MeSH;
> >  my $meshdb = new Bio::DB::MeSH();
> >  # fetch a Bio::Phenotype::MeSH object
> >  my $term=$meshdb->get_exact_term('Down Syndrome');
> >  print $term->description, "\n";
> >
> >  my @parents = $term->each_parent();  # array of term strings
> >  my @roles = $term->each_twig();
> >  # array of Bio::Phenotype::MeSH::Twig objects
> >
> >
> > Enjoy,
> >
> > 	-Heikki
> >
> >
> >
> >
> >
> >
> > On Fri, 2003-07-25 at 12:11, Christophe Bouvard wrote:
> >>> Christophe,
> >>>
> >>> There is nothing in Bioperl that could do it.
> >>>
> >>> However, adding it is not too difficult. Emulating the MeSH browser  
> >>> page
> >>> at http://www.nlm.nih.gov/mesh/MBrowser.html is easy.
> >>>
> >>> Is this the only public server?
> >>
> >> You can access to MeSH either with NCBI's Entrez or with the MeSH  
> >> browser.
> >>
> >> For the butter :
> >> http://www.nlm.nih.gov/cgi/mesh/2003/MB_cgi?field=uid&term=D002079
> >> http://www.ncbi.nih.gov/entrez/
> >> query.fcgi?cmd=Text&db=mesh&uid=68002079
> >>
> >>
> >> So I can write a Perl program that reads and parses the page located  
> >> at the
> >> URL
> >> http://www.nlm.nih.gov/cgi/mesh/2003/MB_cgi?field=uid&term=XXXXXXX  
> >> (where
> >> XXXXXXX is the unique MeSH ID).
> >> For instance, let's have a look to the source of the page
> >> http://www.nlm.nih.gov/cgi/mesh/2003/MB_cgi?field=uid&term=D002079 :
> >>
> >> 8<-------------------------------------------------------------------- 
> >> -----
> >> [...]
> >> <TR><TH align=left>MeSH Heading</TH><TD>Butter</TD></TR>
> >> <TR><TH align=left>Tree Number</TH><TD><A
> >> HREF="#TreeD10.516.212.302.199">D10.516.212.302.199</A></TD></TR>
> >> <TR><TH align=left>Tree Number</TH><TD><A
> >> HREF="#TreeJ02.500.350.100">J02.500.350.100</A></TD></TR>
> >> <TR><TH align=left>Tree Number</TH><TD><A
> >> HREF="#TreeJ02.500.375.200">J02.500.375.200</A></TD></TR>
> >> <TR><TH align=left>Annotation</TH><TD>a dairy product & dietary fat;  
> >> <A
> >> href="/cgi/mesh/2003/MB_cgi?term=MARGARINE">
> >> MARGARINE</A> is also available</TD></TR>
> >> <TR><TH align=left>Scope Note</TH><TD>The fatty portion of milk,  
> >> separated
> >> as a soft yellowish solid when milk or cream is churned. It is  
> >> processed for
> >> cooking and table use. (Random House Unabridged Dictionary, 2d  
> >> ed)</TD></TR>
> >> [...]
> >> <TR><TH align=left>CAS Type 1 Name</TH><TD>Butter</TD></TR>
> >> <TR><TH align=left>Registry Number</TH><TD>8029-34-3</TD></TR>
> >> <TR><TH align=left>Unique ID</TH><TD>D002079</TD></TR>
> >> [...]
> >> ---------------------------------------------------------------------- 
> >> --->8
> >>
> >> It is easy to parse this kind of simple HTML page.
> >>
> >> Or I can write a program that reads and parses the NCBI's Entrez page
> >> located at the address
> >> http://www.ncbi.nih.gov/entrez/query.fcgi?cmd=Text&db=mesh&uid=XXXXXXX
> >> (where XXXXXXX is the unique NCBI ID and NOT the unique MeSH ID).
> >> For example, this is the source of the page
> >> http://www.ncbi.nih.gov/entrez/
> >> query.fcgi?cmd=Text&db=mesh&uid=68002079
> >> (Butter):
> >>
> >> 8<-------------------------------------------------------------------- 
> >> -----
> >> <pre>
> >>
> >> 1: Butter
> >> The fatty portion of milk, separated as a soft yellowish solid when  
> >> milk or
> >> cream is churned. It is processed for cooking and table use. (Random  
> >> House
> >> Unabridged Dictionary, 2d ed)</pre>
> >> ---------------------------------------------------------------------- 
> >> --->8
> >>
> >>>
> >>> The main problem is what to do with the result. We need to write a  
> >>> class
> >>> that captures the returned information in a sensible way. Storing  
> >>> the id
> >>> (D002079), heading ('Butter') and annotation ('a dairy product &  
> >>> dietary
> >>> fat; MARGARINE is also available') is straight forward.
> >>
> >>> What is definition in this context?
> >>
> >> The scope note.
> >>
> >>
> >>> All terms can belong to many trees. How should that information be
> >>> captured?
> >>>
> >>> How wold you like to query MeSH data in addition to ID? Term? Tree
> >>> number?
> >>
> >> Actually I just want to query MeSH in addition to ID for getting the  
> >> scope
> >> note. But I think Bioperl should provide searching ability according  
> >> to MeSH
> >> ID or keywords in annotation & scope note.
> >>
> >> Kindly regards,
> >>
> >> Christophe
> >>
> >> PS: I'm not very keen on butter but it's the first example that  
> >> appears in
> >> my mind...
> >>
> >>>
> >>>
> >>> 	-Heikki
> >>>
> >>> On Fri, 2003-07-25 at 10:01, Christophe Bouvard wrote:
> >>>> Hello,
> >>>>
> >>>> I am looking for perl module that retrieves information from MeSH
> >> database.
> >>>> I had a look in the bioperl documentation but I did not find out an
> >>>> appropriate module.
> >>>> So, is Bioperl providing this feature?
> >>>> For instance, with an unique MeSH identier (such as D002079), how  
> >>>> can I
> >> get
> >>>> the MeSH heading, the definition and the annotations?
> >>>> Thank you!
> >>>>
> >>>> Regards,
> >>>>
> >>>> Christophe
> >>>>
> >>>> _______________________________________________
> >>>> Bioperl-l mailing list
> >>>> Bioperl-l at portal.open-bio.org
> >>>> http://portal.open-bio.org/mailman/listinfo/bioperl-l
> >>> --
> >>> ______ _/       
> >>> _/_____________________________________________________
> >>>       _/      _/                      http://www.ebi.ac.uk/mutations/
> >>>      _/  _/  _/  Heikki Lehvaslaiho    heikki_at_ebi ac uk
> >>>     _/_/_/_/_/  EMBL Outstation, European Bioinformatics Institute
> >>>    _/  _/  _/  Wellcome Trust Genome Campus, Hinxton
> >>>   _/  _/  _/  Cambs. CB10 1SD, United Kingdom
> >>>      _/      Phone: +44 (0)1223 494 644   FAX: +44 (0)1223 494 468
> >>> ___  
> >>> _/_/_/_/_/________________________________________________________
> > -- 
> > ______ _/      _/_____________________________________________________
> >       _/      _/                      http://www.ebi.ac.uk/mutations/
> >      _/  _/  _/  Heikki Lehvaslaiho    heikki_at_ebi ac uk
> >     _/_/_/_/_/  EMBL Outstation, European Bioinformatics Institute
> >    _/  _/  _/  Wellcome Trust Genome Campus, Hinxton
> >   _/  _/  _/  Cambs. CB10 1SD, United Kingdom
> >      _/      Phone: +44 (0)1223 494 644   FAX: +44 (0)1223 494 468
> > ___ _/_/_/_/_/________________________________________________________
> >
> > _______________________________________________
> > Bioperl-l mailing list
> > Bioperl-l at portal.open-bio.org
> > http://portal.open-bio.org/mailman/listinfo/bioperl-l
> >
-- 
______ _/      _/_____________________________________________________
      _/      _/                      http://www.ebi.ac.uk/mutations/
     _/  _/  _/  Heikki Lehvaslaiho    heikki_at_ebi ac uk
    _/_/_/_/_/  EMBL Outstation, European Bioinformatics Institute
   _/  _/  _/  Wellcome Trust Genome Campus, Hinxton
  _/  _/  _/  Cambs. CB10 1SD, United Kingdom
     _/      Phone: +44 (0)1223 494 644   FAX: +44 (0)1223 494 468
___ _/_/_/_/_/________________________________________________________



More information about the Bioperl-l mailing list