def get_homologs_for_gene(self, symbol, org_name):
		# always use FlyMine for querying homologs
		service = self.services["Drosophila melanogaster"]
    	
		query = service.new_query()
		query.add_view(
			"Gene.symbol", "Gene.primaryIdentifier", "Gene.homologues.homologue.symbol",
			"Gene.homologues.homologue.primaryIdentifier",
			"Gene.homologues.homologue.organism.name",
			"Gene.homologues.dataSets.name"
			)
		query.add_constraint("Gene.homologues.homologue.organism.name", "ONE OF", org_util.get_names())
		query.add_constraint("Gene.organism.name", "=", org_name)
		query.add_constraint("Gene.symbol", "=", symbol)

		homologs = defaultdict(lambda: defaultdict(list))
		for row in query.results("tsv"):
			cols = row.split('\t')
			homolog_org = cols[4]
			homolog_symbol = cols[2]
			if homolog_symbol != '""':
				if len(cols) == 6:
					dataset = self.strip_suffix(cols[5])
					homologs[homolog_org][homolog_symbol].append(dataset)
				else:
					homologs[homolog_org][homolog_symbol].append(None)

		return homologs
    def get_homologs_for_gene(self, symbol, org_name):
        # always use FlyMine for querying homologs
        
        h_sym = "homologues.homologue.symbol"
        h_org = "homologues.homologue.organism.name"
        h_ds  = "homologues.dataSets.name"
        
        service = self.services["Drosophila melanogaster"]
        
        query = service.new_query("Gene")\
                       .select(h_org, h_sym, h_ds)\
                       .where(h_org, "ONE OF", org_util.get_names())\
                       .where("organism.name", "=", org_name)\
                       .where("symbol", "=", symbol)\
                       .where(h_sym, "IS NOT NULL")

        homologs = defaultdict(dict)        
        
        for org, g1 in groupby(query.rows(), lambda x: x[h_org]):
            for sym, g2 in groupby(g1, lambda x: x[h_sym]):
                homologs[org][sym] = [r[h_ds] for r in g2]
        return homologs