Dear developers,
I’ve been trying in many ways to let UMLS::Similarity work, but it seems that
there are some problems I’m not able to solve. Initially I had issues with
my.cnf and mysql.socket. I had different versions of the same files, then the
mysql.socket disappeared from the /tmp folder. Actually they seems to be
solved, since I completely removed any previous mysql server installation and
reinstalled the latest version using brew on my mac. I was using UMLS
similarity on a small subset with only two semantic types created using
Metamorphosys. I tested some of the Interface methods and they seems to be
working, anyway when trying to create an index to use with umps similarity I
always get the following error
ERROR: UMLS::Interface::PathFinder->_checkIndex
Index Error (Error Code 9).
Index did not complete. Remove using the removeConfigData.pl program and re-run.
and when I try to use the removeConfigData.pl to rebuild it from scratch the
program never ends (it is still running since last friday).
I thought that another possibility is that in some way the Pathfinder module
cannot build the paths to the root of the UMLS because tables in mysql don't
contain the UMLS root concept C0000000 and its relationships. By looking at the
code I still wasn’t able to understand how the path from concepts without a
parent to the UMLS root is created. I found a call at a certain point to some
function getCuiChildren where the passed cui string seems to be an empty string
empty. I also modified the my.cnf file as you specify in the documentation of
the perl module.
Finally I’m trying to do the same operations on the entire UMLS database. My
code is the following
use lib '/Library/Perl/5.16/';
use UMLS::Interface;
use UMLS::Similarity::lin;
%params = ();
$params{"intrinsic"} = "sanchez";
$params{"username"} = "egaleota";
$params{"password"} = “password";
$params{"socket"} = "/tmp/mysql.sock";
$params{"config"} = "/Users/egaleota/umls/UMLS-Interface-1.41/myconfig.conf";
#$cuifinder = UMLS::Interface::CuiFinder->new(\%params);
my $umls = UMLS::Interface->new(\%params);
die "Unable to create UMLS::Interface object.\n" if(!$umls);
$paramtri{"intrinsic"}="sanchez";
my $lin = UMLS::Similarity::lin->new($umls, \%paramtri);
#die "Unable to create measure object.\n" if(!$lin);
my $cui1 = "C0459385";
my $cui2 = "C0440746";
$ts1 = $umls->getTermList($cui1);
my $term1 = pop @{$ts1};
$ts2 = $umls->getTermList($cui2);
my $term2 = pop @{$ts2};
my $value = $lin->getRelatedness($cui1, $cui2);
print "The similarity between $cui1 ($term1) and $cui2 ($term2) is $value\n";
Actually I’m running the code above. The index seems to be in creation phase.
When I check for the current queries in the db I obtain results like the
following which let me believe that the problems are not related to how perl
communicates with mysql
+----+----------+-----------+--------------------+---------+------+------------+------------------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State
| Info
|
+----+----------+-----------+--------------------+---------+------+------------+------------------------------------------------------------------------------------------------------+
| 51 | egaleota | localhost | umls | Query | 0 | statistics
| select distinct CUI2 from MRREL where CUI1='C3135343' and ((REL='CHD') ) and
CUI2!='C3135343' and SU |
| 52 | egaleota | localhost | umlsinterfaceindex | Sleep | 0 |
| NULL
|
| 54 | egaleota | localhost | NULL | Query | 0 | init
| show processlist
|
+----+----------+-----------+--------------------+---------+------+------------+------------------
Since all this tasks are really time consuming I was kindly wondering if you
could help me to solve this issues. Thanks,
Eugenia Galeota, PhD
Center for Genomic Science of IIT@SEMM
Computational Epigenomics
Email: [email protected]
Tel: +39 02 9437 5046
Via Adamello 16, 20139 Milan, Italy