Changeset 1569:7898b2d279b2 in orange-bioinformatics


Ignore:
Timestamp:
02/16/12 19:59:24 (2 years ago)
Author:
markotoplak
Branch:
default
Message:

obiGeneSets can now load gene sets from a dictionary or a list of pairs (name, genes).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • obiGeneSets.py

    r1549 r1569  
    9999        """ 
    100100        if input != None and len(input) > 0: 
    101             if hasattr(input, "items"): 
    102                 for i,g in input.items(): 
     101            self.update(input) 
     102 
     103    def update(self, input): 
     104        if isinstance(input, obiGeneSets.GeneSets): 
     105            super(GeneSets, self).update(input) 
     106        elif hasattr(input, "items"): 
     107            for i,g in input.items(): 
     108                self.add(obiGeneSets.GeneSet(pair=(i,g))) 
     109        else: 
     110            for i in input: 
     111                if isinstance(i, obiGeneSets.GeneSet): 
     112                    self.add(i) 
     113                else: 
     114                    i,j = i 
    103115                    self.add(obiGeneSets.GeneSet(pair=(i,g))) 
    104             else: 
    105                 self.update(input) 
    106116 
    107117    def to_odict(self): 
     
    464474 
    465475    for collection in args: 
    466         if isinstance(collection, obiGeneSets.GeneSets): 
     476        try: 
    467477            result.update(collection) 
    468         elif issequencens(collection): #have a hierarchy, organism specification 
    469             new = load(*collection) 
    470             result.update(new) 
    471         else: 
    472             if collection.lower()[-4:] == ".gmt": #format from webpage 
    473                 result.update(loadGMT(open(collection,"rt").read(), collection)) 
     478        except ValueError: 
     479            if issequencens(collection): #have a hierarchy, organism specification 
     480                new = load(*collection) 
     481                result.update(new) 
    474482            else: 
    475                 raise Exception("collection() accepts files in .gmt format only.") 
    476   
     483                if collection.lower()[-4:] == ".gmt": #format from webpage 
     484                    result.update(loadGMT(open(collection,"rt").read(), collection)) 
     485                else: 
     486                    raise Exception("collection() accepts files in .gmt format only.") 
     487 
    477488    return result 
    478489 
     
    505516 
    506517if __name__ == "__main__": 
    507     gs = keggGeneSets("9606") 
     518 
     519    #gs = keggGeneSets("9606") 
     520    akegg = collections((("KEGG",),"9606")) 
     521    a = collections({"PATH": ["g1","g2","g3"]}, "steroltalk.gmt", akegg) 
     522    for e in a: 
     523        print e 
    508524    #print len(collections(keggGeneSets("9606"),(("KEGG",),"9606"), "C5.BP.gmt")) 
    509525    #print len(collections((("KEGG",),"9606"), "C5.BP.gmt")) 
Note: See TracChangeset for help on using the changeset viewer.