Monday, June 25, 2007

Week 5 Project Update

Below is the weekly update email I sent out this morning.

PROJECT: Command Line Topological Query Application for BioSQL

Last Week I:
  • Tried to work with Bio::Phylo .. decided to stick with Bio::Tree
  • Finished PhyExport - a command line program to export trees from the PhyloDB
This week:
  • Start PhyOpt - a phylogeny optimizer program to calculate nested sets
  • Extend PhyExport to export subtrees based on nested set values calculated by Ph

Friday, June 22, 2007

PhyExport: Working copy posted

I now have a working version of PhyExport (as phyexport.pl) posted on the project source code repository. This version uses the Bio::Tree object. The biggest problem I had was to figure out how to add data to the tree object in a recursive subfunction. The recursive subfunction was used to fetch all of the children nodes from the root.

I ended up giving the program the package name PhyloDB. I then used 'our $tree' to set the scope of tree object to a package level variable. This allowed me to add nodes to the tree as $PhyloDB::tree.

PhyExport can now export node names, edge lengths, and boot strap values in any export format that Bio::Tree can use.

I have a lot of clean up work to do with this, but at least I have something that works now.

Wednesday, June 20, 2007

PhyImport Bug: Child and parent switched

I just realized that the child and parent ids were getting switched in the edge table using the phyimport program. I did not realize this until I tried to extract trees back out of the database..silly mistake.

Tuesday, June 19, 2007

Google Changing Midterm Evaluation Criteria

Although I plan on meeting my midterm deadlines for submitting code to my project's svn repository on google, I just saw that google is changing the midterm evaluation requirements. There is a lot of signal to noise problems on the GSOC student and announce mailing lists so I am posting this here FYI.

So, we're actually changing the code submission requirement for the mid-term to a requirement that you fill out a survey instead - we haven't had the resources to implement the infrastructure we wanted to have in place before you submitted your code to us.

I'll also make a post about this to the announcement list, but:

1) No student mid-term code submission.
2) Students need to take a survey instead.
3) Instructions for completing the survey will be sent to the program
announcement list.
4) You will be able to complete the survey between July 9 - July 16th.

I'll also update the FAQ in the next few days.

Cheers,
LH

Bio::Phylo -- giving up for now

The ioctl problem in Bio::Phylo is not easy to fix .. I ran the script with strace:

strace perl -le phylotest.pl

and I get the following output that I really can't figure out:

execve("/usr/local/bin/perl", ["perl", "-le", "phylotest.pl"], [/* 41 vars */]) = 0
uname({sys="Linux", node="JamieHidThis", ...}) = 0
brk(0) = 0x9643000
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/tls/i686/mmx/libperl.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/tls/i686/mmx", 0xbfffa1a0) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/tls/i686/libperl.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/tls/i686", 0xbfffa1a0) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/tls/mmx/libperl.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/tls/mmx", 0xbfffa1a0) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/tls/libperl.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/tls", 0xbfffa1a0) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/i686/mmx/libperl.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/i686/mmx", 0xbfffa1a0) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/i686/libperl.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/i686", 0xbfffa1a0) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/mmx/libperl.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/mmx", 0xbfffa1a0) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libperl.so", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\10\2\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0555, st_size=1194580, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75f8000
old_mmap(NULL, 1205760, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x944000
old_mmap(0xa5e000, 45056, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x119000) = 0xa5e000
old_mmap(0xa69000, 5632, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xa69000
close(3) = 0
open("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libnsl.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=80436, ...}) = 0
old_mmap(NULL, 80436, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb75e4000
close(3) = 0
open("/lib/libnsl.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 <\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=87563, ...}) = 0
old_mmap(NULL, 80480, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xc5b000
old_mmap(0xc6c000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x11000) = 0xc6c000
old_mmap(0xc6d000, 6752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xc6d000
close(3) = 0
open("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260\32"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=13601, ...}) = 0
old_mmap(NULL, 12244, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x907000
old_mmap(0x909000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x909000
close(3) = 0
open("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/libm.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\3604\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=185942, ...}) = 0
old_mmap(NULL, 135616, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xee2000
old_mmap(0xf03000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x21000) = 0xf03000
close(3) = 0
open("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/libpthread.so.0", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0G\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=86486, ...}) = 0
old_mmap(NULL, 65140, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x33d000
old_mmap(0x34a000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xc000) = 0x34a000
old_mmap(0x34b000, 7796, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x34b000
close(3) = 0
open("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200X\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1516255, ...}) = 0
old_mmap(NULL, 1279980, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x15c000
old_mmap(0x28f000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x132000) = 0x28f000
old_mmap(0x292000, 10220, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x292000
close(3) = 0
open("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libcrypt.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libcrypt.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\t\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=22242, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75e3000
old_mmap(NULL, 181308, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x111000
old_mmap(0x116000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x4000) = 0x116000
old_mmap(0x117000, 156732, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x117000
close(3) = 0
open("/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libutil.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libutil.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\16\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=11375, ...}) = 0
old_mmap(NULL, 11012, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xabf000
old_mmap(0xac1000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0xac1000
close(3) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75e2000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb75e2080, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xb75e4000, 80436) = 0
set_tid_address(0xb75e20c8) = 20752
rt_sigaction(SIGRTMIN, {0x341660, [], SA_RESTORER|SA_SIGINFO, 0x347f80}, NULL, 8) = 0rt_sigprocmask(SIG_UNBLOCK, [RTMIN], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) = 0
rt_sigaction(SIGFPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
brk(0) = 0x9643000
brk(0x9664000) = 0x9664000
brk(0) = 0x9664000
getuid32() = 507
geteuid32() = 507
getgid32() = 507
getegid32() = 507
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=32148976, ...}) = 0
mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb73e2000
close(3) = 0
mmap2(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb73c1000
time([1182268075]) = 1182268075
stat64("/home/jestill/src/bioperl/bioperl-live/5.8.0/i386-linux-thread-multi", 0xbfffa800) = -1 ENOENT (No such file or directory)
stat64("/home/jestill/src/bioperl/bioperl-live/5.8.0", 0xbfffa800) = -1 ENOENT (No such file or directory)
stat64("/home/jestill/src/bioperl/bioperl-live/i386-linux-thread-multi", 0xbfffa800) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.0/5.8.0/i386-linux-thread-multi", 0xbfffa800) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.0/5.8.0", 0xbfffa800) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.0/i386-linux-thread-multi", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
_llseek(0, 0, 0xbfffa5f0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
_llseek(1, 0, 0xbfffa5f0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
ioctl(2, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
_llseek(2, 0, 0xbfffa5f0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
open("/dev/null", O_RDONLY|O_LARGEFILE) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfffa688) = -1 ENOTTY (Inappropriate ioctl for device)
_llseek(3, 0, [0], SEEK_CUR) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
fstat64(3, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
readlink("/proc/self/exe", "/usr/bin/perl", 4095) = 13
getpid() = 20752
getppid() = 20751
close(3) = 0
exit_group(0) = ?
Process 20752 detached


It looks like the problem is toward the bottom involving SNDCT_TMR_TIMEBASE but I really have no clue what that is. I am giving up on using Bio::Phylo at least for now.