def getTopLevelFeatures(self, organism): dolog("getting top level features for " + str(organism)) query = "select f.uniquename,f.feature_id from feature f " query += "join cvterm on f.type_id = cvterm.cvterm_id " query += "join featureprop using (feature_id) " query += "where f.organism_id= " query += str(organism) query += " and featureprop.type_id in " query += " (select cvterm_id from cvterm join cv using (cv_id) where cv.name = 'genedb_misc' and cvterm.name = 'top_level_seq') " # query += " and f.type_id not in ('432', '1087') " query += "order by uniquename "; self.cur.execute(query) rows = self.cur.fetchall() features = [] for row in rows: # print row feature = Feature(row[0], row[1]) features.append(feature) return features
def gffTopLevelFeature(gffQueries, feature): rows = gffQueries.getGFF3View(feature.feature_id) dolog(feature.uniquename) feature_ids = [] for r in rows: feature_ids.append(r[0]) relations = gffQueries.getRelations("objects", feature_ids) residues = gffQueries.getResidues(feature.feature_id) if residues == None: residues = "" gffFormatter = GFFFormatter(feature, rows, relations, residues) gffFormatter.parse() format = gffFormatter.format() # try to stop leaks... gffFormatter = None relations = None residues = None return format