From 099c1a9f30f7cb308d8dbce3c0675f21f3d9e60b Mon Sep 17 00:00:00 2001
From: Martijn Vermaat <martijn@vermaat.name>
Date: Fri, 30 Jan 2015 13:07:09 +0100
Subject: [PATCH] Fix for getGeneLocation query on PostgreSQL

SQLite accepted the incorrect non-aggregate use of columns missing from
the GROUP BY, whereas PostgreSQL did not.
---
 mutalyzer/services/rpc.py | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/mutalyzer/services/rpc.py b/mutalyzer/services/rpc.py
index fe79c8d1..e70b238d 100644
--- a/mutalyzer/services/rpc.py
+++ b/mutalyzer/services/rpc.py
@@ -1351,11 +1351,12 @@ class MutalyzerService(ServiceBase):
             session.query(func.min(TranscriptMapping.start),
                           func.max(TranscriptMapping.stop),
                           TranscriptMapping.orientation,
-                          Chromosome) \
+                          Chromosome.name,
+                          Chromosome.accession) \
                    .filter(TranscriptMapping.chromosome.has(assembly=assembly),
                            TranscriptMapping.gene == gene) \
                    .join(TranscriptMapping.chromosome) \
-                   .group_by(TranscriptMapping.chromosome,
+                   .group_by(Chromosome.id,
                              TranscriptMapping.orientation) \
                    .first()
 
@@ -1364,15 +1365,16 @@ class MutalyzerService(ServiceBase):
             raise Fault("EARG",
                         "No location was found for gene %s." % gene)
 
-        start, stop, orientation, chromosome = mapping
+        start, stop, orientation, chromosome_name, chromosome_accession \
+            = mapping
 
         result = GeneLocation()
         result.gene = gene
         result.start = start
         result.stop = stop
         result.orientation = orientation
-        result.chromosome_name = chromosome.name
-        result.chromosome_accession = chromosome.accession
+        result.chromosome_name = chromosome_name
+        result.chromosome_accession = chromosome_accession
         result.assembly_name = assembly.name
         result.assembly_alias = assembly.alias
 
-- 
GitLab