[Bioperl-l] call for help and comments on module
Dan Kortschak
dan.kortschak at adelaide.edu.au
Mon Dec 21 22:24:04 EST 2009
Hi,
I've been working on a Bio::Tools::Run module to handle the bowtie rapid
alignment tool (and associated tools): Bio::Tools::Run::Bowtie (in
bioperl-run tree).
I have 90% of what I want included in the module and would like some
advice from more experienced bioperlers. Feedback on approach is also
welcomed (this is my first significant wrapper, and after a long gap
from writing module, so I am rusty). The module has ended up being
significantly more complicated than I had hoped.
There are a few issues I'm having, so I apologise for the list:
1. Informal tests run correctly (outside the t/ tree and Test
harness), but formal Test harness tests fail for reasons I
cannot understand. (The module is still lacking a lot of tests,
but since things were failing in the harness I have placed them
as a lower priority and have been working to my micro-script
tests - yes, bad form.
2. I am having a big problem with IPC::Run for one of the
executables (the module can call 5 different excutables for 7
commands), bowtie-maptool (module command 'map'). All the other
commands tested (this excludes bowtie-maqconvert [convert
command]) work fine, but maptool fails with an illegal seek -
presumably due to the redirection handling? I have no idea how
to resolve this, so help would be greatly appreciated (a small
script that demonstrates the use that results in the failure is
below).
There will be provision for returning a Bio::Assembly::IO object through
samtools in the finished module, but currently the
Bio::Assembly::IO::sam builder doesn't like what bowtie can provide.
Thanks for any help.
Dan
#!/usr/bin/perl
use strict;
use warnings;
use Bio::Tools::Run::Bowtie;
# These files are in the bioperl-run t/data/ tree
my $rdq = '/usr/local/src/bioperl-run/t/data/bowtie/reads/e_coli_1000.fq';
my $refseq = '/usr/local/src/bioperl-run/t/data/bowtie/indexes/e_coli';
my $bowtiefac = Bio::Tools::Run::Bowtie->new(
-command => 'single',
-max_seed_mismatches => 2,
-seed_length => 28,
-max_qual_mismatch => 70,
-sam_format => 0
);
my $align = $bowtiefac->run($rdq,$refseq); # this runs fine
my $bowtiemap = Bio::Tools::Run::Bowtie->new(
-command => 'map'
);
my $map = $bowtiemap->run($align); # throws Illegal seek
print "$map\n";
open (IN,$map);
my $lines =(my @lines)= <IN>;
print @lines;
print "\n\n$lines\n";
close IN;
More information about the Bioperl-l
mailing list