[Bioperl-l] Bio::Score of interest?

Hilmar Lapp hlapp at gmx.net
Tue Jun 27 20:18:36 EDT 2006

On Jun 27, 2006, at 11:25 AM, Sendu Bala wrote:

> Hilmar Lapp wrote:
>> I would have suggested initiating a quantitation type ontology,  
>> not one
>> individual per module.
> Where would such a thing 'live'? Would it be some static file  
> somewhere
> that gets read in with Bio::OntologyIO? Or an in-memory Bio::Ontology
> that can added to by a module when it needs extra terms to describe  
> its
> particular kind of scores?

For instance, yes. Once you read in an ontology (through  
Bio::OntologyIO indeed) it sits essentially in memory.

> [...]
> Not having any experience with ontolgies, I can't think how this would
> all be done in practice though. Don't we need some central module
> (Bio::Score) to create the ontology (or read it in) and then present
> some suitable interface to it?

Possibly - the problem is how to get the ontology=typed term given an  
analysis program and attribute name (e.g. 'score' of a feature  
object). There is no method for doing this on a feature object and  
bolting one on would be a bad idea I think.

So, the Bio::Score would be a little hybrid between an objectified  
score value that now doesn't just have a numeric value but also a  
type term, and a factory for creating the ontology (e.g., by reading  
it in from a specified or default location). I.e., you'd have

	my $value = $score->value();
	my $type = $score->type();
	# $type is-a Bio::Ontology::TermI
	my $quant_ont = $type->ontology();
	# see what type of score we have
	my @ancestors = $quant_ont->get_ancestor_terms($type);
	if (grep {$_->name eq 'expectation_value'} @ancestors) {
		# it's an e-value
	} elsif ( ...test for some other type...) {
		# etc

> For example, modules that wanted to store
> some scores might just ask Bio::Score for the ontology and type their
> scores by associating with an available ontology term, creating new
> terms if necessary (or is that something you would never do; the
> ontology needed to have been set up to cover all possible terms?).

Yes. You'd extend it as you encounter types that aren't in the  
ontology yet, until the ontology fully captures the knowledge domain.

> Then
> when the user has a bunch of these typed scores, surely he doesn't  
> want
> to deal with going through the ontology himself to work out what it  
> all
> means? Well, he could if he needs that level of control, but also he
> just wants to say Bio::Score->sort(x y z) or something.

See above for a quick example of the logic. I'd separate that into  
its own module, like Bio::Score::Utils.


> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l

: Hilmar Lapp  -:-  Durham, NC  -:-  hlapp at gmx dot net :

More information about the Bioperl-l mailing list