Skip to content

Commit e94514d

Browse files
committed
tests should pass now
1 parent 4549a93 commit e94514d

3 files changed

Lines changed: 21 additions & 5 deletions

File tree

‎api/resources/gene_information.py‎

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,16 @@ def post(self):
100100

101101
if len(rows) > 0:
102102
for row in rows:
103-
if row.agi in data_items.keys():
104-
data_items[row.agi].append(row.agi)
103+
normalized_agi = BARUtils.normalize_arabidopsis_gene(row.agi)
104+
alias_value = row.alias
105+
if BARUtils.is_arabidopsis_gene_valid(alias_value):
106+
alias_value = BARUtils.normalize_arabidopsis_gene(alias_value)
107+
108+
if normalized_agi in data_items.keys():
109+
data_items[normalized_agi].append(normalized_agi)
105110
else:
106-
data_items[row.agi] = []
107-
data_items[row.agi].append(row.alias)
111+
data_items[normalized_agi] = []
112+
data_items[normalized_agi].append(alias_value)
108113

109114
for gene in data_items.keys():
110115
data.append({"gene": gene, "aliases": data_items[gene]})

‎api/resources/microarray_gene_expression.py‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from api.models.efp_dynamic import SIMPLE_EFP_SAMPLE_MODELS
66
from api.utils.bar_utils import BARUtils
77
from api.utils.world_efp_utils import WorldeFPUtils
8+
from sqlalchemy import func
89
import json
910

1011
# Pull the dynamic model so this resource stays in sync with the schema catalog
@@ -33,7 +34,7 @@ def get(self, species="", gene_id=""):
3334
return BARUtils.error_exit("Invalid species")
3435
subquery = (
3536
db.select(AtAgiLookup.probeset)
36-
.where(AtAgiLookup.agi == gene_id)
37+
.where(func.lower(AtAgiLookup.agi) == gene_id.lower())
3738
.order_by(AtAgiLookup.date.desc())
3839
.limit(1)
3940
.subquery()

‎api/utils/bar_utils.py‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,16 @@ def is_arabidopsis_gene_valid(gene):
3333
else:
3434
return False
3535

36+
@staticmethod
37+
def normalize_arabidopsis_gene(gene):
38+
"""Return Arabidopsis gene in canonical case (At1g01010)."""
39+
if not gene:
40+
return gene
41+
lowered = gene.lower()
42+
if re.search(r"^at[12345cm]g\d{5}.?\d?$", lowered):
43+
return "At" + lowered[2:]
44+
return gene
45+
3646
@staticmethod
3747
def is_grape_gene_valid(gene):
3848
"""This function verifies if grape gene is valid: VIT_00s0120g00060

0 commit comments

Comments
 (0)