maom commited on
Commit
833f2a3
·
verified ·
1 Parent(s): bf6bf02

add query params support and gene_symbol

Browse files
Files changed (1) hide show
  1. app.py +27 -8
app.py CHANGED
@@ -6,6 +6,21 @@ import altair as alt
6
 
7
  st.set_page_config(layout='wide')
8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  st.markdown("""
10
  # CryptoCEN Expression Scatter
11
  **CryptoCEN** is a co-expression network for *Cryptococcus neoformans* built on 1,524 RNA-seq runs across 34 studies.
@@ -45,26 +60,28 @@ col1, col2, padding = st.columns(spec = [0.2, 0.2, 0.6])
45
  with col1:
46
  gene_id_1 = st.text_input(
47
  label = "Gene ID 1",
48
- value = "CNAG_04365",
49
  max_chars = 10,
50
  help = "CNAG Gene ID e.g. CNAG_04365")
51
 
52
  with col2:
53
  gene_id_2 = st.text_input(
54
  label = "Gene ID 2",
55
- value = "CNAG_04222",
56
  max_chars = 10,
57
  help = "CNAG Gene ID e.g. CNAG_04222")
58
 
59
  # check the user input
60
  try:
61
- cnag_id_1 = h99_transcript_annotations.loc[h99_transcript_annotations["gene_id"] == gene_id_1]["cnag_id"].values
 
62
  description_1 = h99_transcript_annotations.loc[h99_transcript_annotations["gene_id"] == gene_id_1]["description"].values[0]
63
  except:
64
  st.error(f"Unable to locate cnag_id for Gene ID 1: {gene_id_1}, it should be of the form 'CNAG_######'")
65
 
66
  try:
67
- cnag_id_2 = h99_transcript_annotations.loc[h99_transcript_annotations["gene_id"] == gene_id_2]["cnag_id"].values
 
68
  description_2 = h99_transcript_annotations.loc[h99_transcript_annotations["gene_id"] == gene_id_2]["description"].values[0]
69
  except:
70
  st.error(f"Unable to locate cnag_id for Gene ID 2: {gene_id_2}, it should be of the form 'CNAG_######'")
@@ -79,12 +96,14 @@ chart_data = chart_data.merge(
79
 
80
  st.markdown(f"""
81
  #### Gene 1:
82
- * *gene_id*: [{gene_id_1}](https://fungidb.org/fungidb/app/record/gene/{gene_id_1})
83
- * *description*: {description_1}
 
84
 
85
  #### Gene 2:
86
- * *gene_id*: [{gene_id_2}](https://fungidb.org/fungidb/app/record/gene/{gene_id_2})
87
- * *description*: {description_2}
 
88
  """)
89
 
90
  chart = (
 
6
 
7
  st.set_page_config(layout='wide')
8
 
9
+ # parse out gene_ids from URL query args to it's possible to link to this page
10
+ query_params = st.query_params()
11
+ if "gene_id_1" %in% names(query_params):
12
+ gene_id_1 = query_params["gene_id_1"]
13
+ else:
14
+ gene_id_1 = "CNAG_04365"
15
+
16
+ if "gene_id_2" %in% names(query_params):
17
+ gene_id_2 = query_params["gene_id_2"]
18
+ else:
19
+ gene_id_2 = "CNAG_04222"
20
+
21
+
22
+
23
+
24
  st.markdown("""
25
  # CryptoCEN Expression Scatter
26
  **CryptoCEN** is a co-expression network for *Cryptococcus neoformans* built on 1,524 RNA-seq runs across 34 studies.
 
60
  with col1:
61
  gene_id_1 = st.text_input(
62
  label = "Gene ID 1",
63
+ value = f"{gene_id_1}",
64
  max_chars = 10,
65
  help = "CNAG Gene ID e.g. CNAG_04365")
66
 
67
  with col2:
68
  gene_id_2 = st.text_input(
69
  label = "Gene ID 2",
70
+ value = f"{gene_id_2}",
71
  max_chars = 10,
72
  help = "CNAG Gene ID e.g. CNAG_04222")
73
 
74
  # check the user input
75
  try:
76
+ cnag_id_1 = h99_transcript_annotations.loc[h99_transcript_annotations["gene_id"] == gene_id_1]["cnag_id"].values[0]
77
+ gene_symbol_1 = h99_transcript_annotations.loc[h99_transcript_annotations["gene_id"] == gene_id_1]["gene_symbol"].values[0]
78
  description_1 = h99_transcript_annotations.loc[h99_transcript_annotations["gene_id"] == gene_id_1]["description"].values[0]
79
  except:
80
  st.error(f"Unable to locate cnag_id for Gene ID 1: {gene_id_1}, it should be of the form 'CNAG_######'")
81
 
82
  try:
83
+ cnag_id_2 = h99_transcript_annotations.loc[h99_transcript_annotations["gene_id"] == gene_id_2]["cnag_id"].values[0]
84
+ gene_symbol_2 = h99_transcript_annotations.loc[h99_transcript_annotations["gene_id"] == gene_id_2]["gene_symbol"].values[0]
85
  description_2 = h99_transcript_annotations.loc[h99_transcript_annotations["gene_id"] == gene_id_2]["description"].values[0]
86
  except:
87
  st.error(f"Unable to locate cnag_id for Gene ID 2: {gene_id_2}, it should be of the form 'CNAG_######'")
 
96
 
97
  st.markdown(f"""
98
  #### Gene 1:
99
+ * *Gene ID*: [{gene_id_1}](https://fungidb.org/fungidb/app/record/gene/{gene_id_1})
100
+ {'* *Gene Symbol*:' + gene_symbol_1 if gene_symbol_1 is not None else ''}
101
+ * *Description*: {description_1}
102
 
103
  #### Gene 2:
104
+ * *Gene ID*: [{gene_id_2}](https://fungidb.org/fungidb/app/record/gene/{gene_id_2})
105
+ {'* *Gene Symbol*:' + gene_symbol_2 if gene_symbol_2 is not None else ''}
106
+ * *Description*: {description_2}
107
  """)
108
 
109
  chart = (