Sam Henry
and 1 contributors
    #error checking
    my $function = "_getCUICooccurrences_DB"; 
    if(!defined $self || !ref $self) {
        $errorhandler->_error($pkg, $function, "", 2);
    }

    #get hashes of co-occurring CUIs
    my %cooccurrences1 = ();
    my %cooccurrences2 = ();

    #query DB to get cuis, where concept 1 is the leading cui
    my $firstCui = shift @{$cuis1Ref};
    my $query = "SELECT * FROM N_11 WHERE (N_11.cui_1 = '$firstCui' ";
    foreach my $cui (@{$cuis1Ref}) {
        $query .= "OR N_11.cui_1 = '$cui' ";
    }
    $query .= ") AND N_11.n_11 > 0;";
    my $sth = $assocDB_G->prepare($query);
    $sth->execute();   
    my @rows = @{$sth->fetchall_arrayref()};
    unshift @{$cuis1Ref}, $firstCui;

    #turn CUIs into a hash of cui1's cooccurrences
    foreach my $rowRef (@rows) {
        print STDERR join(' ', @{$rowRef})."\n";
    }
    #TODO - this is done, it works ... it gets back the whole relevant table. Now fill up as needed.


    my @cuis;
    #query DB to get cuis, where concept 2 is the trailing cui
    $firstCui = shift @{$cuis2Ref};
    $query =  "SELECT N_11.cui_1 FROM N_11 WHERE (N_11.cui_2 = '$firstCui' ";
    foreach my $cui (@{$cuis2Ref}) {
        $query .= "OR N_11.cui_2 = '$cui' ";
    }
    $query .= ") AND N_11.n_11 > 0;";
    @cuis = @{$assocDB_G->selectcol_arrayref($query)};
    unshift @{$cuis2Ref}, $firstCui;

    #turn CUIs into a hash of cui2's co-occurrences
    foreach my $cui (@cuis) {
        $cooccurrences2{$cui} = 1;
    }

    #add additional cuis if order doesn't matter
    if($noOrder_G) {
        #get cuis, where concept 1 is the trailing cui
        $firstCui = shift @{$cuis1Ref};
        my $query = "SELECT N_11.cui_1 FROM N_11 WHERE (N_11.cui_2 = '$firstCui' ";
        foreach my $cui (@{$cuis1Ref}) {
            $query .= "OR N_11.cui_2 = '$cui' ";
        }
        $query .= ") AND N_11.n_11 > 0;";
        @cuis = @{$assocDB_G->selectcol_arrayref($query)};
        unshift @{$cuis1Ref}, $firstCui;

        #add cuis to the hash of cui1's co-occurrences
        foreach my $cui (@cuis) {
            $cooccurrences1{$cui} = 1;
        }

        #get cuis, where concept 2 is the leading cui
        $firstCui = shift @{$cuis2Ref};
        $query =  "SELECT N_11.cui_2 FROM N_11 WHERE (N_11.cui_1 = '$firstCui' ";
        foreach my $cui (@{$cuis2Ref}) {
            $query .= "OR N_11.cui_1 = '$cui' ";
        }
        $query .= ") AND N_11.n_11 > 0;";
        @cuis = @{$assocDB_G->selectcol_arrayref($query)};
        unshift @{$cuis2Ref}, $firstCui;

        #add cuis to the hash of cui2's co-occurrences
        foreach my $cui (@cuis) {
            $cooccurrences2{$cui} = 1;
        }
    }

    #return the cui co-occurrences
    return (\%cooccurrences1, \%cooccurrences2);
}

NAME

UMLS::Association::StatFinder - provides the statistical association information of the concept pairs in the UMLS

DESCRIPTION For more information please see the UMLS::Association.pm documentation.

SYNOPSIS

use UMLS::Association::StatFinder; use UMLS::Association::ErrorHandler;

%params = ();

$statfinder = UMLS::Association::StatFinder->new(\%params); die "Unable to create UMLS::Association::StatFinder object.\n" if(!$statfinder);

my $cui1 = C0018563; my $cui2 = C0446516;

# calculate measure assocation my $measure = "ll"; my $score = $statfinder->calculateStatistic($cui1, $cui2, $measure);

INSTALL

    To install the module, run the following magic commands:

    perl Makefile.PL
    make
    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/bridget

    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.

    =head1 SEE ALSO

    <http://tech.groups.yahoo.com/group/umls-similarity/>

    =head1 AUTHOR

    Bridget T McInnes <bmcinnes@vcu.edu>
    Andriy Y. Mulyar  <andriy.mulyar@gmail.com>
    Alexander D. McQuilkin <alexmcq99@yahoo.com>
    Alex McQuilken <alexmcq99@yahoo.com>
    Sam Henry <henryst@vcu.edu>

    =head1 COPYRIGHT

    Copyright (c) 2015
    Bridget T. McInnes, Virginia Commonwealth University
    btmcinnes at vcu.edu

    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.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 1240:

Unknown directive: =comment