Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from predict_chromosome import predict_and_write | |
| st.title("DeepLoop") | |
| st.write("Looking for some example data?") | |
| st.write("https://huggingface.co/datasets/funlab/HiCorr_test_data") | |
| st.write("Use hg19, HindIII, chr11, CPGZ and LoopDenoise for the Demo data") | |
| ######### | |
| # INPUT # | |
| ######### | |
| HiCorr_data_hf_repo = st.text_input( | |
| "HiCorr Data π€ Dataset", value="funlab/HiCorr_test_data" | |
| ) | |
| training_set = st.selectbox("Select Training Set", ["CPGZ", "H9"], index=0) | |
| depth = st.selectbox("Select Depth", ["LoopDenoise", "50M", "101K"], index=0) | |
| # TODO Throw a warning that h9 only has LoopDenoise and 100M | |
| chromosome = st.selectbox("Select Chromosome", ["chr11"]) | |
| prefix = "results" | |
| genome = st.selectbox( | |
| "Reference Genome", | |
| [ | |
| "hg19", | |
| "hg38", | |
| "mm10", | |
| ], | |
| ) | |
| digestion_enzyme = st.selectbox( | |
| "Digestion Enzyme", | |
| [ | |
| "HindIII", | |
| "Arima", | |
| # FIXME "microC_5kb_bin" | |
| "DPNII", | |
| ], | |
| index=0, | |
| ) | |
| # TODO Add the other toggles | |
| # small_matrix_size | |
| # step_size | |
| # max_dist | |
| # dummy | |
| # val_cols | |
| # keep_zeros | |
| # Load the model from hugging face | |
| from huggingface_hub import from_pretrained_keras | |
| model = from_pretrained_keras(f"funlab/DeepLoop-{training_set}-{depth}") | |
| from huggingface_hub import snapshot_download | |
| HiCorr_data = snapshot_download(HiCorr_data_hf_repo, repo_type="dataset") | |
| anchors = snapshot_download( | |
| repo_id=f"funlab/{genome}_{digestion_enzyme}_anchor_bed", repo_type="dataset" | |
| ) | |
| import os | |
| os.makedirs(prefix, exist_ok=True) | |
| if st.button("Run Deeploop", type="primary"): | |
| denoised_anchor_to_anchor = None | |
| with st.spinner("Running the model"): | |
| denoised_anchor_to_anchor = predict_and_write( | |
| model, | |
| full_matrix_dir=HiCorr_data + f"/anchor_2_anchor.loop.{chromosome}", | |
| input_name=HiCorr_data + f"/anchor_2_anchor.loop.{chromosome}.p_val", | |
| outdir=prefix, | |
| anchor_dir=anchors, | |
| chromosome=chromosome, | |
| small_matrix_size=128, | |
| step_size=128, | |
| dummy=5, | |
| # max_dist, | |
| val_cols=["obs", "exp", "pval"], | |
| # keep_zeros, | |
| ) | |
| st.success("Done!") | |
| # Print and list the files | |
| st.download_button( | |
| label="Download Denoised Results", | |
| data=os.path.join(prefix, chromosome + ".denoised.anchor.to.anchor"), | |
| file_name=chromosome + ".denoised.anchor.to.anchor", | |
| mime="text/csv", | |
| ) | |
| st.dataframe(denoised_anchor_to_anchor) | |
| st.write(os.listdir(prefix)) | |