Example #1
0
 def get_phage_name_from_PhageID(self, PhageID):
     self.c = db_conf.db_conf(username=self.username,
                              password=self.password,
                              server=self.server,
                              db=self.database).get_cursor()
     self.db = pham.db(c=self.c)
     return phamerator_manage_db.get_phage_name_from_PhageID(
         self.c, PhageID)
  def create_pham_circle(self,phamName,alignmentColor,adjustment,radius):
    self.c = db_conf.db_conf(username=self.username,password=self.password,server=self.server,db=self.database).get_cursor()
    self.db = pham.db(c = self.c)
    filename = str(phamName) + str(alignmentColor) + str(adjustment) + str(radius)
    filelist = os.listdir(self.cachedir)
    for item in filelist:
      if item == filename:
        self.current_phamCircle = self.cachedir + filename
        string = "phamCircle " + str(phamName) + " found in cache, using cached version\n"
        print ">" + string
        return string
    self.radius = radius
    self.alignmentColor = alignmentColor
    self.threshold = 0.70
    self.phamCircleCanvas = goocanvas.Canvas()
    GeneIDs = phamerator_manage_db.get_members_of_pham(self.c, phamName)
    memberPhages, self.nonMemberPhages = [], []
    for GeneID in GeneIDs:
      PhageID = phamerator_manage_db.get_PhageID_from_GeneID(self.c, GeneID)
      if PhageID not in memberPhages: memberPhages.append(PhageID)
    totalPhages = phamerator_manage_db.get_PhageIDs(self.c)
    for p in totalPhages:
      if p not in memberPhages: self.nonMemberPhages.append(phamerator_manage_db.get_phage_name_from_PhageID(self.c, p))
    self.l = []
    self.genes = []

    for a in GeneIDs:
      for b in GeneIDs:
        if a != b:
          for gene in [a, b]:
            if gene not in self.genes: self.genes.append(gene)
          clustalwScore, blastScore = phamerator_manage_db.get_scores(self.c, a, b)
          if clustalwScore >= 0.275: self.l.append((a, b, 'clustalw',clustalwScore))
          if blastScore and blastScore <= 0.0001: self.l.append((a, b, 'blast',blastScore))
    self.phamCircle = PhamDisplay.PhamCircle(phamName, self.c,verbose=True,radius=self.radius)
    if self.alignmentColor == True:
      self.phamCircleCanvas.set_root_item_model(self.phamCircle.create_canvas_model(self.nonMemberPhages, self.genes, self.l,adjustment,self.threshold,blastColor='#ff0000', clustalwColor='#0000ff'))
    else:
      phamColorFromDataBase = self.db.select('pham_color','color',name = phamName)[0][0]
      self.phamCircleCanvas.set_root_item_model(self.phamCircle.create_canvas_model(self.nonMemberPhages, self.genes, self.l,adjustment,self.threshold,allColor = phamColorFromDataBase))
 
    """x, y = (600, 500)
    self.phamCircleCanvas.set_size_request(x, y)
    self.defaultPhamCircleCanvasSize = (x, y)
    self.phamCircleCanvas.show()
    self.window.window.set_cursor(None)
    return False"""
    
    self.current_phamCircle = self.cachedir + filename
    self.phamCircleCanvas.set_bounds(0,0, 10000, 10000)
    surface = cairo.SVGSurface (self.current_phamCircle, 15*72, 15*72)
    cr = cairo.Context (surface)
    cr.translate (10, 0)
    self.phamCircleCanvas.render (cr, None, 0.1)
    cr.show_page()
    string = "phamCircle " + str(phamName) + " generated\n"
    print ">" + string
    return string
 def get_phage_name_from_PhageID(self, PhageID):
   self.c = db_conf.db_conf(username=self.username,password=self.password,server=self.server,db=self.database).get_cursor()
   self.db = pham.db(c = self.c)
   return phamerator_manage_db.get_phage_name_from_PhageID(self.c, PhageID)
Example #4
0
    def create_pham_circle(self, phamName, alignmentColor, adjustment, radius):
        self.c = db_conf.db_conf(username=self.username,
                                 password=self.password,
                                 server=self.server,
                                 db=self.database).get_cursor()
        self.db = pham.db(c=self.c)
        filename = str(phamName) + str(alignmentColor) + str(adjustment) + str(
            radius)
        filelist = os.listdir(self.cachedir)
        for item in filelist:
            if item == filename:
                self.current_phamCircle = self.cachedir + filename
                string = "phamCircle " + str(
                    phamName) + " found in cache, using cached version\n"
                print ">" + string
                return string
        self.radius = radius
        self.alignmentColor = alignmentColor
        self.threshold = 0.70
        self.phamCircleCanvas = goocanvas.Canvas()
        GeneIDs = phamerator_manage_db.get_members_of_pham(self.c, phamName)
        memberPhages, self.nonMemberPhages = [], []
        for GeneID in GeneIDs:
            PhageID = phamerator_manage_db.get_PhageID_from_GeneID(
                self.c, GeneID)
            if PhageID not in memberPhages: memberPhages.append(PhageID)
        totalPhages = phamerator_manage_db.get_PhageIDs(self.c)
        for p in totalPhages:
            if p not in memberPhages:
                self.nonMemberPhages.append(
                    phamerator_manage_db.get_phage_name_from_PhageID(
                        self.c, p))
        self.l = []
        self.genes = []

        for a in GeneIDs:
            for b in GeneIDs:
                if a != b:
                    for gene in [a, b]:
                        if gene not in self.genes: self.genes.append(gene)
                    clustalwScore, blastScore = phamerator_manage_db.get_scores(
                        self.c, a, b)
                    if clustalwScore >= 0.275:
                        self.l.append((a, b, 'clustalw', clustalwScore))
                    if blastScore and blastScore <= 0.0001:
                        self.l.append((a, b, 'blast', blastScore))
        self.phamCircle = PhamDisplay.PhamCircle(phamName,
                                                 self.c,
                                                 verbose=True,
                                                 radius=self.radius)
        if self.alignmentColor == True:
            self.phamCircleCanvas.set_root_item_model(
                self.phamCircle.create_canvas_model(self.nonMemberPhages,
                                                    self.genes,
                                                    self.l,
                                                    adjustment,
                                                    self.threshold,
                                                    blastColor='#ff0000',
                                                    clustalwColor='#0000ff'))
        else:
            phamColorFromDataBase = self.db.select('pham_color',
                                                   'color',
                                                   name=phamName)[0][0]
            self.phamCircleCanvas.set_root_item_model(
                self.phamCircle.create_canvas_model(
                    self.nonMemberPhages,
                    self.genes,
                    self.l,
                    adjustment,
                    self.threshold,
                    allColor=phamColorFromDataBase))
        """x, y = (600, 500)
    self.phamCircleCanvas.set_size_request(x, y)
    self.defaultPhamCircleCanvasSize = (x, y)
    self.phamCircleCanvas.show()
    self.window.window.set_cursor(None)
    return False"""

        self.current_phamCircle = self.cachedir + filename
        self.phamCircleCanvas.set_bounds(0, 0, 10000, 10000)
        surface = cairo.SVGSurface(self.current_phamCircle, 15 * 72, 15 * 72)
        cr = cairo.Context(surface)
        cr.translate(10, 0)
        self.phamCircleCanvas.render(cr, None, 0.1)
        cr.show_page()
        string = "phamCircle " + str(phamName) + " generated\n"
        print ">" + string
        return string