[Bioperl-l] Re: Proposed bioperl submission
Ewan Birney
birney at ebi.ac.uk
Mon Mar 10 08:10:26 EST 2003
[cc'ing in Bioperl for this submission of siRNA objects]
Looks very cool. The basic flow if I have got it right is:
Bio::Tools::SiRNA ----> make a set of Bio::SeqFeature::SiRNAs which is
made from two oligo object, and has a ranking.
Bio::Tools::SiRNA tries to dodge SNPs and repeats and uses the MDust
module as well.
I would take the modules as they stand, but ideally would like the
following things:
(a) clean up (eg, remove the use lib() in Bio::Tools::SiRNA)
(b) EXPORT_OK( :all) etc should not be needed, as none of the modules
should be exporting. True?
(c) it would be nice for the Bio::Tools::SiRNA to take a -target =>
$target intialisation, eg
$sirna_designer = Bio::Tools::SiRNA->new( -target => $target)
(check out the _rearrange method on Bio::Root::RootI)
(d) Complete bonus would be if Bio::SeqFeature::SiRNA had a to_FTHelper
method. The to_FTHelper unpacks the seqfeature into EMBL/GenBank files to
make the description block there. This way you can have complete control
over the "display" of siRNA info. We probably don't make enough use of
to_FTHelper internally in Bioperl. An example is here from Ensembl where
we are exporting Genes into EMBL/GenBank format (this is a pretty complex
case)
sub to_FTHelper {
my $self = shift;
my @out;
my @dblinks = @{$self->gene->get_all_DBLinks()};
foreach my $trans (@{$self->gene->get_all_Transcripts()}) {
my $loc = features2join_string($trans->get_all_translateable_Exons);
my $ft = Bio::SeqIO::FTHelper->new();
$ft->loc($loc);
$ft->key('CDS');
$ft->add_field('translation', $trans->translate()->seq());
$ft->add_field('cds', $trans->translation->stable_id());
$ft->add_field('gene', $self->gene->stable_id());
$ft->add_field('transcript', $trans->stable_id());
foreach my $dbl (@dblinks) {
$ft->add_field('db_xref', $dbl->database().":".$dbl->display_id());
}
push(@out, $ft);
}
foreach my $exon (@{$self->gene->get_all_Exons()}) {
my $ft = Bio::SeqIO::FTHelper->new();
my $loc = features2join_string([$exon]);
$ft->loc($loc);
$ft->key("exon");
if( $self->strict_EMBL_dumping()) {
$ft->add_field('db_xref', 'ENSEMBL:HUMAN-Exon-'.$exon->stable_id());
} else {
$ft->add_field('exon_id', $exon->stable_id());
$ft->add_field('start_phase', $exon->phase());
$ft->add_field('end_phase', $exon->phase());
}
push (@out, $ft);
}
return @out;
}
More information about the Bioperl-l
mailing list