Monday, July 16, 2007

Weekly Update

Last Week:
  • Finished Delete branch query for PhyMod
  • Added subtree export to PhyExport
  • Began PhyQry
  • Been reading Perl Best Practices .. good book

This Week:
  • Finish PhyQry with basic database and tree overview information
  • Add (--usage,--help, and --man) options to the command line

Thursday, July 12, 2007

RapidSVN and GSoC Survery

I installed RapidSVN today. It looks like this will really make working with svn a bit easier. I have been doing most of my SVN work from the command line and I like being able to have a nice visual overview of how everything stands. This was really easy to install from the RPMs that I found online.

I have uploaded the code that I wanted on google at this time so I feel like I am pretty much on track to get this project done by the end of the summer. I went ahead and did the GSoC survey too.

After reading "Perl Best Practices (PBP)" I plan on going back and doing some editing of the command line options from the programs. I really think I should change the way the help works, this currently just kicks into perldoc. The PBP book suggests a much better way to do this by having separate options:
  • --usage
    Short usage statement.
  • --help
    Short usage statement with one liners describing the required arguments and options . This will be the default to go to when the user enters incorrect information at the command line.
  • --man
    This will print the perldoc POD documentation
I will also be adding additional information to the POD doc as suggested by PBP.

Wednesday, July 11, 2007

PhyExport: Subtree export

Subtree export is now included in PhyExport using the --parent-node variable. This was actually pretty easy to implement. I just need to add some code to make sure that users can not try to use the parent-node variable when they are exporting all of the trees in the database. The node ids from the database can also be exported now using the --db-node-id boolean.

A test tree image

The current test tree is above. Node labels indicated by letters, node_id from the database indicated by numbers. This image is mainly for me to reference later when working with phyexort and phymod. I added the ability to include the database node_id in PhyExport so that it is easier to reference a given node by the identifier it has in the database.

Tuesday, July 10, 2007

PhyMod: Delete Query Available

A version of PhyMod that can do a delete query is now available from the project SVN. I ended up using the nested set values after tinkering with the transitive closure data. I will probably recode the SQL in these to avoid using nested SQL. The delete query is simply a cut at the command line where a paste is not indicated. The code will count the number of records that will be deleted from the tables and warns the user before wreaking havoc.

Monday, July 9, 2007

MySQL Query Browser

While doing some reading this weekend, I discovered the MySQL query browser. A GUI app for working with MySQL databases. I just downloaded it, and it seems really awesome. The 5.0 release appears to work with the 4.1 version of MySQL that I have installed.

Upgrading MySQL Notes

Upgrading MySQL from 4.0 to 4.1 on RHEL WS 3 was not too easy. I had to first back up all of my databases ... and then delete the existing version. I wanted to put my notes here in case I need to do this again since I had to put this together from a few places.

Backed up all of my existing databses
 mysqldump --user jestill --all-databases --password >/home/jestill/mysqldump/JamieDbs.dump
Check what version of MySQL I am actually running
mysql>SELECT version()
Stop the server
cd /etc/rc.d/init.d
sudo ./mysql stop
Copied the existing version to a new name.

Find what I have currently installed for MySQL
rpm -q -a | grep -i mysql
Delete what I had installed:
rpm -e MySQL-bench
rpm -e MySQL-server
rpm -e MySQL-devel
rpm -e MySQL-client
rpm -e mysql-connector-odbc-3.511.12-1
Dowloaded the rpms for my version of Linux from MySQL. Then installed the new rpms after logging on as root
rpm -i MySQL-client-standard-4.1.11
rpm -i MySQL -devel-standard-4.1.22
rpm -i MySQL-server-standard-4.1.22
rpm -i MySQL-shared-standard-4.1.22
rpm -i MySQL-shared-compat-4.1.22
I then started MySQL back up again to check the version.
mysql>SELECT version();
| version() |
| 4.1.22-standard |
1 row in set (0.01 sec)
Since I updated MySQL I also updated DBD::MySQL
cpan>force DBD::MySQL

Weekly Update

Hi all...been busy last few weeks.

PROJECT: Command Line Topological Query Apps for BioSQL

Last TWO weeks:
  • Completed a Working version of PhyOpt. The core of this comes from H. Lapp's tree-precompute script. This put me ahead of my original timeline on the front of having working transitive closure precomputes available. I am using the precomputed values for PhyExport and PhyQry.
  • Upgraded my version of MySQL from 4.0 to 4.1. This allows me to use nested queries. It looks like nested queries are going to be the easiest way for me to do the optimization as well as use the optimization info. I may upgrade again to 5.0, but I would like the program to run on the oldest version of the database possible. (I also don't want to kill the 40 other databases I have on my machine.)
  • Started PhyMod to modify trees in the database .. this is making use of the precomputations from above in PhyOpt.
  • Updated info on the project web page to reflect some changes in the command line options.
  • I have been reading Perl Best Practices by D. Conway... I wish I had this book years ago!
  • I have also been dealing with genome annotation problems that have nothing to do with this project (I really would like bioperl to support computational results in game xml or Apollo to support Chado better..)

For this week:
  • Finish subtree Delete query in phymod based on a node ID passed to the program.
  • Add subtree export to PhyExport ... It made more sense for me to get PhyOpt fully working before doing this.