From BioPerl
Jump to: navigation, search

(pasting some of the Moose discussion from this thread here, so as not to lose it. See also Naming Conventions and the Future --Majensen 17:52, 6 May 2009 (UTC))

  • We're playing around with a rewrite of go-perl using Moose. This is early enough that parts could be scrapped or rewritten. Compatibility with bioperl is important. Speed was an initial concern but apparently there are some moose tricks to speed things up. DBIx::Class compatibility is also important. Not sure if there is specific support for this yet. --Chris Mungall, 5 May 2009
  • I don't think it needs to be scrapped. A stable Moose-based BioPerl is probably still a ways off from production use (I would like to test out a bit of interface->role conversion). I'm not sure about DBIx::Class, but I know Moose sometimes doesn't play well with and its exported methods (I think there is a conflict). I believe there have been some musings in the past over changing Bio::Root::Exceptions to use Exception::Class or similar, so maybe this'll be the push to do so. Startup speed is an issue with Moose but as you noted there are ways to optimize things. And, truthfully, if we can get around the interface issues using roles it might actually help a bit. --Chris Fields, 6 May 2009

  • I would definitely like to volunteer for 'biomoose' project as much as my skills will permit. I wrote a 'homologene' parser in early Moose days(0.3) and till then quite interested to work on a Moose based project. Hopefully will be able to help as the project takes some shape. Though quite early, two MooseX extension that are worth looking at, MooseX::Declare and MooseX::MultiMethods. thanks... --Siddhartha Basu, 5 May 2009


I've sort of backed off on setting up the primary namespace as BioMoose. Instead, everything will be in Bio::Moose. From there we can have Bio::Moose::Root, Bio::Moose::SeqFeature, etc. Roles will be Bio::Moose::Role, meta classes in Bio::Moose::Meta. BioPerl-like Root classes will be in Bio::Moose::Root.

Named parameters

Distinguishing named parameters vs. positional ones vs. 'slurpy' ones is tricky as perl5 has no built-in signature support (and likely won' t until perl 5.12, if then). Therefore we'll need some way of distinguishing named parameters from positional ones.

This has (in the past) been accomplished using '-'. We can use rearrange() but it's BioPerl incarnation is mainly for either named parameters or positional parameters, not mixes of the two:

my $stuff1 = Foo->klotz(-a => 1, 'b', 'c', 'd');
my $stuff2 = Foo->klotz('b', 'c', 'd', -a => 1);
  • MooseX::Method::Signatures does this to an extent but it is apparently slow, something we don't necessarily want for very large sets of data.
Personal tools
Main Links