Changeset 1531:54a9507c7ee4 in orange-bioinformatics


Ignore:
Timestamp:
01/30/12 15:15:24 (2 years ago)
Author:
ales_erjavec
Branch:
default
Message:

Added traversal methods, term_by_name.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • obiOntology.py

    r1355 r1531  
    541541                return self.id2term[self.alt2id[id]] 
    542542            else: 
    543                 raise ValueError("Unknown term id: %s" % id) 
     543                raise ValueError("Unknown term id: %r" % id) 
    544544        elif isinstance(id, OBOObject): 
    545545            return id 
     
    549549        """ 
    550550        return [obj for obj in self.objects if obj.stanza_type == "Term"] 
     551     
     552    def term_by_name(self, name): 
     553        """ Return the term with name ``name``.  
     554        """ 
     555        terms = [t for t in self.terms() if t.name == name] 
     556        if len(terms) != 1: 
     557            raise ValueError("Unknown term name: %r" % name) 
     558        return terms[0] 
    551559     
    552560    def typedefs(self): 
     
    665673    def has_key(self, key): 
    666674        return self.id2tem.has_key(key) 
     675     
     676    def traverse_bf(self, term): 
     677        """ BF traverse of the ontology down from term. 
     678        """ 
     679        queue = list(self.child_terms(term)) 
     680        while queue: 
     681            term = queue.pop(0) 
     682            queue.extend(self.child_terms(term)) 
     683            yield term 
     684                     
     685    def traverse_df(self, term, depth=1e30): 
     686        """ DF traverse of the ontology down from term. 
     687        """ 
     688        if depth >= 1: 
     689            for child in self.child_terms(term): 
     690                yield child 
     691                for t in self.traverse_df(child, depth-1): 
     692                    yield t 
     693         
    667694     
    668695    def to_network(self, terms=None): 
Note: See TracChangeset for help on using the changeset viewer.