|
|
|
@ -51,6 +51,7 @@ expl = st.expander(label="More info") |
|
|
|
with expl: |
|
|
|
with expl: |
|
|
|
st.write(info.explainer) |
|
|
|
st.write(info.explainer) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
with st.form("files"): |
|
|
|
# Ask for nodes file. |
|
|
|
# Ask for nodes file. |
|
|
|
csv_nodes = st.file_uploader( |
|
|
|
csv_nodes = st.file_uploader( |
|
|
|
label="Upload file with **nodes** (if you have one).", key="nodes", help=f'[Example]({info.node_example})' |
|
|
|
label="Upload file with **nodes** (if you have one).", key="nodes", help=f'[Example]({info.node_example})' |
|
|
|
@ -59,8 +60,15 @@ csv_nodes = st.file_uploader( |
|
|
|
# Ask for relations file. |
|
|
|
# Ask for relations file. |
|
|
|
csv_edges = st.file_uploader(label="Upload file with **relations**.", key="relations", help=f'[Example]({info.relations_example})') |
|
|
|
csv_edges = st.file_uploader(label="Upload file with **relations**.", key="relations", help=f'[Example]({info.relations_example})') |
|
|
|
|
|
|
|
|
|
|
|
if csv_edges is not None: |
|
|
|
sep = st.radio('Separator in your files:', options=[',', ';', 'tab']) |
|
|
|
df = pd.read_csv(csv_edges) |
|
|
|
if sep == 'tab': |
|
|
|
|
|
|
|
sep='\t' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
files_uploaded = st.form_submit_button("Ok") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if files_uploaded: |
|
|
|
|
|
|
|
df = pd.read_csv(csv_edges, sep=sep) |
|
|
|
|
|
|
|
|
|
|
|
df.rename({'type': 'relation_type'}, inplace=True, axis=1) # 'type' can't be used as attribute. |
|
|
|
df.rename({'type': 'relation_type'}, inplace=True, axis=1) # 'type' can't be used as attribute. |
|
|
|
df.columns = [i.lower() for i in df.columns] # Remove capital letters from column names. |
|
|
|
df.columns = [i.lower() for i in df.columns] # Remove capital letters from column names. |
|
|
|
columns = df.columns.tolist() |
|
|
|
columns = df.columns.tolist() |
|
|
|
@ -73,6 +81,7 @@ if csv_edges is not None: |
|
|
|
columns.append("") |
|
|
|
columns.append("") |
|
|
|
preselected_target = len(columns) - 1 |
|
|
|
preselected_target = len(columns) - 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print(columns) |
|
|
|
st.session_state["target"] = st.selectbox( |
|
|
|
st.session_state["target"] = st.selectbox( |
|
|
|
label="Which one is the target column?", |
|
|
|
label="Which one is the target column?", |
|
|
|
options=columns, |
|
|
|
options=columns, |
|
|
|
@ -104,7 +113,7 @@ if csv_edges is not None: |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
if csv_nodes != None: # When a nodes file is uploaded. |
|
|
|
if csv_nodes != None: # When a nodes file is uploaded. |
|
|
|
df_nodes = pd.read_csv(csv_nodes, sep=";") |
|
|
|
df_nodes = pd.read_csv(csv_nodes, sep=sep) |
|
|
|
df_nodes.columns = [i.lower() for i in df_nodes.columns] # Remove capital letters from column names. |
|
|
|
df_nodes.columns = [i.lower() for i in df_nodes.columns] # Remove capital letters from column names. |
|
|
|
columns = df_nodes.columns.tolist() |
|
|
|
columns = df_nodes.columns.tolist() |
|
|
|
if "label" in columns: |
|
|
|
if "label" in columns: |
|
|
|
@ -127,7 +136,7 @@ if csv_edges is not None: |
|
|
|
df_nodes.set_index("labels", inplace=True) |
|
|
|
df_nodes.set_index("labels", inplace=True) |
|
|
|
|
|
|
|
|
|
|
|
gexf_file = "output.gexf" |
|
|
|
gexf_file = "output.gexf" |
|
|
|
with open(gexf_file) as f: |
|
|
|
#with open(gexf_file) as f: |
|
|
|
# Make empty graph. |
|
|
|
# Make empty graph. |
|
|
|
G = nx.MultiDiGraph() |
|
|
|
G = nx.MultiDiGraph() |
|
|
|
# Add nodes. |
|
|
|
# Add nodes. |
|
|
|
|