Spaces:
Sleeping
Sleeping
add spring layout
Browse files
app.py
CHANGED
@@ -4,6 +4,7 @@ import pandas as pd
|
|
4 |
import datasets
|
5 |
import streamlit as st
|
6 |
from streamlit_cytoscapejs import st_cytoscapejs
|
|
|
7 |
|
8 |
st.set_page_config(layout='wide')
|
9 |
|
@@ -97,6 +98,19 @@ node_info = pd.DataFrame({
|
|
97 |
"gene_name": gene_names,
|
98 |
"description": description})
|
99 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
elements = []
|
101 |
for i in range(len(gene_ids)):
|
102 |
elements.append({
|
@@ -104,8 +118,8 @@ for i in range(len(gene_ids)):
|
|
104 |
"id": gene_ids[i],
|
105 |
"label": gene_name if gene_names[i] is not None else gene_ids[i]},
|
106 |
"position": {
|
107 |
-
"x" : i
|
108 |
-
"y" : i
|
109 |
for i in range(len(neighbors.index)):
|
110 |
edge = neighbors.iloc[i]
|
111 |
elements.append({
|
|
|
4 |
import datasets
|
5 |
import streamlit as st
|
6 |
from streamlit_cytoscapejs import st_cytoscapejs
|
7 |
+
import networkx as nx
|
8 |
|
9 |
st.set_page_config(layout='wide')
|
10 |
|
|
|
98 |
"gene_name": gene_names,
|
99 |
"description": description})
|
100 |
|
101 |
+
################################
|
102 |
+
# Use NetworkX to layout graph #
|
103 |
+
################################
|
104 |
+
# note I think CytoscapeJS can layout graphs
|
105 |
+
# but I'm unsure how to do it through the streamlit-cytoscapejs interface :(
|
106 |
+
|
107 |
+
G = nx.Graph()
|
108 |
+
G.add_weighted_edges_from(
|
109 |
+
[neighbors.gene_id_1.to_list(), neighbors.gene_id_2.to_list(), neighbors.coexp_score.to_list()])
|
110 |
+
layout = nx.spring_layout(G)
|
111 |
+
|
112 |
+
|
113 |
+
|
114 |
elements = []
|
115 |
for i in range(len(gene_ids)):
|
116 |
elements.append({
|
|
|
118 |
"id": gene_ids[i],
|
119 |
"label": gene_name if gene_names[i] is not None else gene_ids[i]},
|
120 |
"position": {
|
121 |
+
"x" : layout[gene_ids[i]][0],
|
122 |
+
"y" : layout[gene_ids[i]][1]}})
|
123 |
for i in range(len(neighbors.index)):
|
124 |
edge = neighbors.iloc[i]
|
125 |
elements.append({
|