|
import streamlit as st |
|
import pandas as pd |
|
import project_config |
|
import base64 |
|
|
|
|
|
@st.cache_data(show_spinner = 'Loading knowledge graph nodes...') |
|
def load_kg(): |
|
|
|
kg_nodes = pd.read_csv(project_config.DATA_DIR / 'kg_nodes.csv', dtype = {'node_index': int}, low_memory = False) |
|
return kg_nodes |
|
|
|
|
|
@st.cache_data(show_spinner = 'Loading knowledge graph edges...') |
|
def load_kg_edges(): |
|
|
|
kg_edges = pd.read_csv(project_config.DATA_DIR / 'kg_edges.csv', dtype = {'edge_index': int, 'x_index': int, 'y_index': int}, low_memory = False) |
|
return kg_edges |
|
|
|
|
|
def capitalize_after_slash(s): |
|
|
|
parts = s.split('/') |
|
|
|
capitalized_parts = [part.title() for part in parts] |
|
|
|
capitalized_string = '/'.join(capitalized_parts).replace('_', ' ') |
|
return capitalized_string |
|
|
|
|
|
|
|
map_dbs = { |
|
'gene/protein': lambda x: f"https://ncbi.nlm.nih.gov/gene/?term={x}", |
|
'drug': lambda x: f"https://go.drugbank.com/drugs/{x}", |
|
'effect/phenotype': lambda x: f"https://hpo.jax.org/app/browse/term/HP:{x.zfill(7)}", |
|
'disease': lambda x: x, |
|
|
|
'biological_process': lambda x: f"https://amigo.geneontology.org/amigo/term/GO:{x.zfill(7)}", |
|
'molecular_function': lambda x: f"https://amigo.geneontology.org/amigo/term/GO:{x.zfill(7)}", |
|
'cellular_component': lambda x: f"https://amigo.geneontology.org/amigo/term/GO:{x.zfill(7)}", |
|
'exposure': lambda x: f"https://ctdbase.org/detail.go?type=chem&acc={x}", |
|
'pathway': lambda x: f"https://reactome.org/content/detail/{x}", |
|
'anatomy': lambda x: x, |
|
} |
|
|
|
|
|
map_db_names = { |
|
'gene/protein': 'NCBI', |
|
'drug': 'DrugBank', |
|
'effect/phenotype': 'HPO', |
|
'disease': 'MONDO', |
|
'biological_process': 'GO: BP', |
|
'molecular_function': 'GO: MF', |
|
'cellular_component': 'GO: CC', |
|
'exposure': 'CTD', |
|
'pathway': 'Reactome', |
|
'anatomy': 'UBERON', |
|
} |