Skip to content

Commit 30c03f2

Browse files
authored
Merge pull request #277 from BioAnalyticResource/dev
Added eFP Grape
2 parents 2f612af + 12e9986 commit 30c03f2

File tree

7 files changed

+48
-7
lines changed

7 files changed

+48
-7
lines changed

api/resources/efp_image.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ def get(self):
2424
"efp_arabidopsis",
2525
"efp_arachis",
2626
"efp_cannabis",
27+
"efp_grape",
2728
"efp_maize",
2829
"efp_rice",
2930
"efp_sorghum",

api/utils/bar_utils.py

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

36+
@staticmethod
37+
def is_grape_gene_valid(gene):
38+
"""This function verifies if grape gene is valid: VIT_00s0120g00060
39+
:param gene:
40+
:return:
41+
"""
42+
if re.search(r"^VIT_\d{0,3}\D\d{0,5}g\d{0,6}$", gene, re.I):
43+
return True
44+
else:
45+
return False
46+
3647
@staticmethod
3748
def is_poplar_gene_valid(gene):
3849
"""This function verifies if Poplar v3 gene is valid

api/utils/efp_utils.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ def is_efp_input_valid(efp, view, mode, gene_1, gene_2=None):
3636
"efp_arabidopsis",
3737
"efp_arachis",
3838
"efp_cannabis",
39+
"efp_grape",
3940
"efp_maize",
4041
"efp_rice",
4142
"efp_sorghum",
@@ -82,6 +83,15 @@ def is_efp_input_valid(efp, view, mode, gene_1, gene_2=None):
8283
if not BARUtils.is_cannabis_gene_valid(gene_2):
8384
return False, "Gene 2 is invalid."
8485

86+
if efp == "efp_grape":
87+
# Validate gene Ids
88+
if not BARUtils.is_grape_gene_valid(gene_1):
89+
return False, "Gene 1 is invalid."
90+
91+
if mode == "Compare":
92+
if not BARUtils.is_grape_gene_valid(gene_2):
93+
return False, "Gene 2 is invalid."
94+
8595
if efp == "efp_maize":
8696
# Validate gene ids
8797
if not BARUtils.is_maize_gene_valid(gene_1):

requirements.txt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ attrs==25.3.0
44
black==25.1.0
55
blinker==1.9.0
66
cachelib==0.13.0
7-
certifi==2025.7.14
7+
certifi==2025.8.3
88
charset-normalizer==3.4.2
99
click==8.2.1
10-
coverage==7.10.0
10+
coverage==7.10.2
1111
Deprecated==1.2.18
1212
flake8==7.3.0
1313
Flask==3.1.1
@@ -17,15 +17,15 @@ Flask-Limiter==3.12
1717
flask-marshmallow==1.3.0
1818
flask-restx==1.3.0
1919
Flask-SQLAlchemy==3.1.1
20-
greenlet==3.2.3
20+
greenlet==3.2.4
2121
idna==3.10
2222
importlib_resources==6.5.2
2323
iniconfig==2.1.0
2424
itsdangerous==2.2.0
2525
Jinja2==3.1.6
2626
jsonschema==4.25.0
2727
jsonschema-specifications==2025.4.1
28-
limits==5.4.0
28+
limits==5.5.0
2929
markdown-it-py==3.0.0
3030
MarkupSafe==3.0.2
3131
marshmallow==4.0.0
@@ -45,14 +45,14 @@ pyrsistent==0.20.0
4545
pytest==8.4.1
4646
python-dateutil==2.9.0.post0
4747
pytz==2025.2
48-
redis==6.2.0
48+
redis==6.4.0
4949
referencing==0.36.2
5050
requests==2.32.4
5151
rich==13.9.4
52-
rpds-py==0.26.0
52+
rpds-py==0.27.0
5353
setuptools==80.9.0
5454
six==1.17.0
55-
SQLAlchemy==2.0.41
55+
SQLAlchemy==2.0.42
5656
typing_extensions==4.14.1
5757
urllib3==2.5.0
5858
Werkzeug==3.1.3

tests/resources/test_efp_image.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ def test_get_efp_image_list(self):
1717
"efp_arabidopsis",
1818
"efp_arachis",
1919
"efp_cannabis",
20+
"efp_grape",
2021
"efp_maize",
2122
"efp_rice",
2223
"efp_sorghum",

tests/utils/test_bar_utils.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@ def test_is_brassica_rapa_gene_valid(self):
3737
result = BARUtils.is_brassica_rapa_gene_valid("abc")
3838
self.assertFalse(result)
3939

40+
def test_is_grape_gene_valid(self):
41+
result = BARUtils.is_grape_gene_valid("VIT_00s0120g00060")
42+
self.assertTrue(result)
43+
44+
# Invalid gene
45+
result = BARUtils.is_grape_gene_valid("abc")
46+
self.assertFalse(result)
47+
4048
def test_is_kalanchoe_gene_valid(self):
4149
# Valid gene
4250
result = BARUtils.is_kalanchoe_gene_valid("Kaladp0001s0001")

tests/utils/test_efp_utils.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,16 @@ def test_is_efp_input_valid(self):
130130
self.assertFalse(result[0])
131131
self.assertEqual(result[1], expected)
132132

133+
# eFP Grape Absolute
134+
result = eFPUtils.is_efp_input_valid("efp_grape", "grape_developmental", "Absolute", "VIT_00s0120g00060")
135+
self.assertTrue(result[0])
136+
self.assertIsNone(result[1])
137+
138+
result = eFPUtils.is_efp_input_valid("efp_grape", "grape_developmental", "Absolute", "Abc")
139+
expected = "Gene 1 is invalid."
140+
self.assertFalse(result[0])
141+
self.assertEqual(result[1], expected)
142+
133143
# eFP Sorghum Absolute
134144
result = eFPUtils.is_efp_input_valid("efp_sorghum", "Stress_Atlas", "Absolute", "Sobic.001G000100")
135145
self.assertTrue(result[0])

0 commit comments

Comments
 (0)