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({
|