Bridget McInnes
and 1 contributors


UMLS::Interface::PathFinder - provides the path information for the modules in the UMLS::Interface package.


This package provides the path information about the CUIs in the UMLS for the modules in the UMLS::Interface package.

For more information please see the documentation.


 use UMLS::Interface::CuiFinder;
 use UMLS::Interface::PathFinder;
 use UMLS::Interface::ErrorHandler;

 %params = ();

 $params{'realtime'} = 1;

 $cuifinder = UMLS::Interface::CuiFinder->new(\%params);
 die "Unable to create UMLS::Interface::CuiFinder object.\n" if(!$cuifinder);

 $pathfinder = UMLS::Interface::PathFinder->new(\%params, $cuifinder); 
 die "Unable to create UMLS::Interface::PathFinder object.\n" if(!$pathfinder);

 $concept = "C0037303";

 $depth = $pathfinder->_depth();
 print "The depth of the taxonomy is $depth\n";

 $array = $pathfinder->_pathsToRoot($concept);
 print "The paths from $concept to root: \n";
 foreach my $p (@{$array}) { 
    print "  => $p\n";

 $mindepth = $pathfinder->_findMinimumDepth($concept);
 $maxdepth = $pathfinder->_findMaximumDepth($concept);
 print "The minimum depth of $concept is $mindepth\n";
 print "The maximum depth of $concept is $maxdepth\n";

 $concept1 = "C0037303"; $concept2 = "C0018563";

 $length = $pathfinder->_findShortestPathLength($concept1, $concept2);
 print "The length of the shortest path between $concept1 and $concept2 is $length\n";

 $array = $pathfinder->_findLeastCommonSubsumer($concept1, $concept2);
 print "The LCS(es) between $concept1 and $concept2 are: \n";
 foreach my $lcs (@{$array}) { 
    print "  => $lcs \n";
 $array  = $pathfinder->_findShortestPath($concept1, $concept2);
 print "The shortest paths between $concept1 and $concept2 are:\n";
 foreach my $path (@{$array}) { 
    print "  => $path\n";


To install the module, run the following magic commands:

  perl Makefile.PL
  make test
  make install

This will install the module in the standard location. You will, most probably, require root privileges to install in standard system directories. To install in a non-standard directory, specify a prefix during the 'perl Makefile.PL' stage as:

  perl Makefile.PL PREFIX=/home/sid

It is possible to modify other parameters during installation. The details of these can be found in the ExtUtils::MakeMaker documentation. However, it is highly recommended not messing around with other parameters, unless you know what you're doing.



Bridget T McInnes <> Ted Pedersen <>


 Copyright (c) 2007-2009
 Bridget T. McInnes, University of Minnesota
 bthomson at

 Ted Pedersen, University of Minnesota Duluth
 tpederse at

 Siddharth Patwardhan, University of Utah, Salt Lake City
 sidd at

 Serguei Pakhomov, University of Minnesota Twin Cities
 pakh0002 at

 Ying Liu, University of Minnesota Twin Cities
 liux0395 at

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to

 The Free Software Foundation, Inc.,
 59 Temple Place - Suite 330,
 Boston, MA  02111-1307, USA.