ayushnoori's picture
Significant update with multi-relation comparison across app
b7df334
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():
# with st.spinner('Loading knowledge graph...'):
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():
# with st.spinner('Loading knowledge graph...'):
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):
# Split the string by slashes first
parts = s.split('/')
# Capitalize each part separately
capitalized_parts = [part.title() for part in parts]
# Rejoin the parts with slashes
capitalized_string = '/'.join(capitalized_parts).replace('_', ' ')
return capitalized_string
# Define dictionary mapping node types to database URLs
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)}", # pad with 0s to 7 digits
'disease': lambda x: x, # MONDO
# pad with 0s to 7 digits
'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,
}
# Define dictionary mapping node types to database names
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',
}