Skip to content
Hilmar Lapp edited this page Mar 29, 2015 · 2 revisions

Table of Contents

NAME

phyopt.pl - Optimize trees in a PhyloDB database

VERSION

This documentation refers to phyopt.pl version 1.0.

SYNOPSIS

  USAGE: phyopt.pl -d 'DBI:mysql:database=biosql;host=localhost' 
                   -u UserName -p dbPass -t MyTree

    REQUIRED ARGUMENTS:
        --dsn        # The DSN string the database to connect to
                     # Must conform to:
                     # 'DBI:mysql:database=biosql;host=localhost' 
        --dbuser     # User name to connect with
        --dbpass     # Password to connect with
    ALTERNATIVE TO --dsn:
        --driver     # "mysql", "Pg", "Oracle" (default "mysql")
        --dbname     # Name of database to use
        --host       # optional: host to connect with
    ADDITIONAL OPTIONS:
        --tree       # Name of the tree to optimize.
                     # Otherwise the entire db is optimized.
        --quiet      # Run the program in quiet mode.
        --verbose    # Run the program in verbose mode.
    ADDITIONAL INFORMATION:
        --version    # Show the program version     
        --usage      # Show program usage
        --help       # Print short help message
        --man        # Open full program manual

DESCRIPTION

The phyopt program will optimize trees in a PhyloDB database by computing transitive closure paths as well as the left and right index values for the nested set indexes.

COMMAND LINE ARGUMENTS

Required Arguments

-d, --dsn : The DSN of the database to connect to; default is the value in the environment variable DBI_DSN. If DBI_DSN has not been defined and the string is not passed to the command line, the dsn will be constructed from --driver, --dbname, --host
DSN must be in the form:
DBI:mysql:database=biosql;host=localhost
-u, --dbuser : The user name to connect with; default is the value in the environment variable DBI_USER.This user must have permission to create databases.
-p, --dbpass : The password to connect with; default is the value in the environment variable DBI_PASSWORD. If this is not provided at the command line the user is prompted.

Alternative to --dsn

An alternative to passing the full dsn at the command line is to provide the components separately.

--host : The database host to connect to; default is localhost.
--dbname : The database name to connect to; default is biosql.
--driver : The database driver to connect with; default is mysql. Options other then mysql are currently not supported.

Additional Options

-t, --tree : Name of the tree that will be optimized. Otherwise all trees in the database will be optimized.
-q, --quiet : Run the program in quiet mode.
--verbose : Execute the program in verbose mode.

Additional Information

--version : Show the program version.
--usage : Show program usage statement.
--help : Show a short help message.
--man : Show the full program manual.

EXAMPLES

Optimize a single tree

The following command options would optimize the tree named MyTree in the biosql database.

    phyopt.pl -d 'DBI:mysql:database=biosql;host=localhost'
              -u name -p password -t MyTree
Optimize entire database

The following commmand options would optimize all of the individual trees in the database named Angio.

    phyopt.pl -d 'DBI:mysql:database=Angio;host=localhost'
              -u name -p password
This could also be done by passing the individual components for connecting to the database.
    phyopt.pl --driver mysql --database Angio --host localhost
              -u name -p password

DIAGNOSTICS

The error messages below are followed by descriptions of the error and possible solutions.

CONFIGURATION AND ENVIRONMENT

Many of the options passed at the command line can be set as options in the user's environment.

DBI_USER : User name to connect to the database.
DBI_PASSWORD : Password for the database connection
DBI_DSN : DSN for database connection.
For example in the bash shell this would be done be editing your .bashrc file to contain:
    export DBI_USER=yourname
    export DBI_PASS=yourpassword
    export DBI_DSN='DBI:mysql:database=biosql;host-localhost'

DEPENDENCIES

The phyimport.pl program is dependent on the following Perl modules:

DBI - http://dbi.perl.org : The PERL Database Interface (DBI) module allows for connections to multiple databases.
DBD::MySQL - http://search.cpan.org/~capttofu/DBD-mysql-4.005/lib/DBD/mysql.pm : MySQL database driver for DBI module.
DBD::Pg - http://search.cpan.org/~rudy/DBD-Pg-1.32/Pg.pm : PostgreSQL database driver for the DBI module.
Getopt::Long - http://perldoc.perl.org/Getopt/Long.html : The Getopt module allows for the passing of command line options to perl scripts.
Bio::Tree - http://www.bioperl.org : The Bio::Tree module is part of the bioperl package.
A RDBMS is also required. This can be one of:
MySQL - http://www.mysql.com :
PostgreSQL - http://www.postgresql.org :

BUGS AND LIMITATIONS

Known limitations:

  • Currently only stable with the MySQL Database driver.
  • DSN string must currently be in the form: DBI:mysql:database=biosql;host=localhost
Please report additional problems to James Estill

SEE ALSO

The program phyinit.pl is a component of a package of comand line programs for PhyloDB management. Additional programs include:

phyinit.pl : Initialize a PhyloDB database.
phyimport.pl : Import common phylogenetic file formats.
phyexport.pl : Export tree data in PhyloDB to common file formats.
phyreport.pl : Return a standard report of information for a given tree.
phymod.pl : Modify an existing phylogenetic database by deleting, adding or copying branches.

LICENSE

This program may be used, distributed or modified under the same terms as Perl itself. Please consult the Perl Artistic License (http://www.perl.com/pub/a/language/misc/Artistic.html) for the terms under which you may use, modify, or distribute this script.

THIS SOFTWARE COMES AS IS, WITHOUT ANY EXPRESS OR IMPLIED WARRANTY. USE AT YOUR OWN RISK.

AUTHORS

James C. Estill

Hilmar Lapp <hlapp></hlapp>

William Piel <william.piel></william.piel>

HISTORY

Started: 07/04/2007

Updated: 08/19/2007

Clone this wiki locally