Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -6,6 +6,7 @@ import SigProfilerMatrixGenerator
|
|
| 6 |
from SigProfilerMatrixGenerator import install as genInstall
|
| 7 |
import shutil
|
| 8 |
import os
|
|
|
|
| 9 |
from SigProfilerExtractor import sigpro as sig
|
| 10 |
import sys
|
| 11 |
import numpy as np
|
|
@@ -29,7 +30,7 @@ def show_pdf(file_path):
|
|
| 29 |
st.markdown(pdf_display, unsafe_allow_html=True)
|
| 30 |
|
| 31 |
#@st.cache_data(experimental_allow_widgets=True)
|
| 32 |
-
def showdl(file_to_lookat,to_dl_sbs,to_dl_indel,to_dl_dbs,to_dl_sbs_text,to_dl_indel_text,to_dl_dbs_text):
|
| 33 |
for j in np.arange(0,len(to_dl_sbs)):
|
| 34 |
if to_dl_sbs[j] != []:
|
| 35 |
download_link1 = f'<a href="data:application/octet-stream;base64, \
|
|
@@ -38,10 +39,14 @@ def showdl(file_to_lookat,to_dl_sbs,to_dl_indel,to_dl_dbs,to_dl_sbs_text,to_dl_i
|
|
| 38 |
|
| 39 |
download_link2 = f'<a href="data:application/octet-stream;base64, \
|
| 40 |
{base64.b64encode(to_dl_sbs_text[j]).decode()}" download=" \
|
| 41 |
-
{file_to_lookat[j].name}SBS.txt">Download {file_to_lookat[j].name} Single Base Substition table</a>'
|
|
|
|
|
|
|
|
|
|
| 42 |
st.markdown(download_link1, unsafe_allow_html=True)
|
| 43 |
|
| 44 |
-
st.markdown(download_link2, unsafe_allow_html=True)
|
|
|
|
| 45 |
|
| 46 |
for j in np.arange(0,len(to_dl_indel)):
|
| 47 |
if to_dl_indel[j] != []:
|
|
@@ -90,6 +95,11 @@ def dl(valforkey):
|
|
| 90 |
PDFbyte1 = pdf_file.read()
|
| 91 |
with open("output/SBS96/Samples.txt","rb") as txt_file:
|
| 92 |
Txtbyte1 = txt_file.read()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 93 |
#st.download_button(label="Download image with single base substitution profiles", key=valforkey,
|
| 94 |
# data=PDFbyte1,
|
| 95 |
# file_name="SBS.pdf",
|
|
@@ -100,17 +110,27 @@ def dl(valforkey):
|
|
| 100 |
PDFbyte2 = pdf_file.read()
|
| 101 |
with open("output/ID83/Samples.txt","rb") as txt_file:
|
| 102 |
Txtbyte2 = txt_file.read()
|
|
|
|
|
|
|
|
|
|
|
|
|
| 103 |
else:
|
| 104 |
PDFbyte2 = []
|
| 105 |
-
Txtbyte2 = []
|
|
|
|
| 106 |
if glob.glob("output/DBS78/Suggested_Solution/COSMIC_DBS78_Decomposed_Solution/DBS78_Decomposition_Plots.pdf") != []:
|
| 107 |
with open("output/DBS78/Suggested_Solution/COSMIC_DBS78_Decomposed_Solution/DBS78_Decomposition_Plots.pdf", "rb") as pdf_file:
|
| 108 |
PDFbyte3 = pdf_file.read()
|
| 109 |
with open("output/DBS78/Samples.txt","rb") as txt_file:
|
| 110 |
Txtbyte3 = txt_file.read()
|
|
|
|
|
|
|
|
|
|
|
|
|
| 111 |
else:
|
| 112 |
PDFbyte3 = []
|
| 113 |
Txtbyte3=[]
|
|
|
|
| 114 |
os.system('rm -r output')
|
| 115 |
os.system('rm -r input')
|
| 116 |
#os.remove("output/SBS96/Suggested_Solution/COSMIC_SBS96_Decomposed_Solution/SBS96_Decomposition_Plots.pdf")
|
|
@@ -126,7 +146,7 @@ def dl(valforkey):
|
|
| 126 |
# data=PDFbyte2,
|
| 127 |
# file_name="idel.pdf",
|
| 128 |
# mime='application/octet-stream')
|
| 129 |
-
return PDFbyte1,PDFbyte2,PDFbyte3,Txtbyte1,Txtbyte2,Txtbyte3
|
| 130 |
|
| 131 |
|
| 132 |
|
|
@@ -172,7 +192,11 @@ if file_to_lookat !=[] and sub:
|
|
| 172 |
to_dl_dbs=[]
|
| 173 |
to_dl_sbs_text=[]
|
| 174 |
to_dl_indel_text=[]
|
| 175 |
-
to_dl_dbs_text=[]
|
|
|
|
|
|
|
|
|
|
|
|
|
| 176 |
for j in np.arange(0,len(file_to_lookat)):
|
| 177 |
if not os.path.exists('input'):
|
| 178 |
os.mkdir('input')
|
|
@@ -196,7 +220,7 @@ if file_to_lookat !=[] and sub:
|
|
| 196 |
|
| 197 |
|
| 198 |
if file_to_lookat !=[] and glob.glob('output/SBS96/Suggested_Solution/COSMIC_SBS96_Decomposed_Solution/*pdf'):
|
| 199 |
-
sbs_result,indel_result,dbs_result,sbs_text,indel_text,dbs_text=dl(j)
|
| 200 |
|
| 201 |
to_dl_sbs.append(sbs_result)
|
| 202 |
to_dl_sbs_text.append(sbs_text)
|
|
@@ -204,6 +228,9 @@ if file_to_lookat !=[] and sub:
|
|
| 204 |
to_dl_indel_text.append(indel_text)
|
| 205 |
to_dl_dbs.append(dbs_result)
|
| 206 |
to_dl_dbs_text.append(dbs_text)
|
|
|
|
|
|
|
|
|
|
| 207 |
|
| 208 |
#show_pdf('output/SBS96/Suggested_Solution/COSMIC_SBS96_Decomposed_Solution/SBS96_Decomposition_Plots.pdf')
|
| 209 |
|
|
@@ -211,7 +238,7 @@ if file_to_lookat !=[] and sub:
|
|
| 211 |
|
| 212 |
remove_old_vcf()
|
| 213 |
|
| 214 |
-
showdl(file_to_lookat,to_dl_sbs,to_dl_indel,to_dl_dbs,to_dl_sbs_text,to_dl_indel_text,to_dl_dbs_text)
|
| 215 |
components.iframe("https://cancer.sanger.ac.uk/signatures/sbs/", height=3000,width=800)
|
| 216 |
#show_pdf('output/ID83/Suggested_Solution/COSMIC_ID83_Decomposed_Solution/ID83_Decomposition_Plots.pdf')
|
| 217 |
#components.iframe("https://cancer.sanger.ac.uk/signatures/id/",height=1000,width=800)
|
|
|
|
| 6 |
from SigProfilerMatrixGenerator import install as genInstall
|
| 7 |
import shutil
|
| 8 |
import os
|
| 9 |
+
import re
|
| 10 |
from SigProfilerExtractor import sigpro as sig
|
| 11 |
import sys
|
| 12 |
import numpy as np
|
|
|
|
| 30 |
st.markdown(pdf_display, unsafe_allow_html=True)
|
| 31 |
|
| 32 |
#@st.cache_data(experimental_allow_widgets=True)
|
| 33 |
+
def showdl(file_to_lookat,to_dl_sbs,to_dl_indel,to_dl_dbs,to_dl_sbs_text,to_dl_indel_text,to_dl_dbs_text,to_dl_sbs_summary_text,to_dl_id_summary_text,to_dl_dbs_summary_text):
|
| 34 |
for j in np.arange(0,len(to_dl_sbs)):
|
| 35 |
if to_dl_sbs[j] != []:
|
| 36 |
download_link1 = f'<a href="data:application/octet-stream;base64, \
|
|
|
|
| 39 |
|
| 40 |
download_link2 = f'<a href="data:application/octet-stream;base64, \
|
| 41 |
{base64.b64encode(to_dl_sbs_text[j]).decode()}" download=" \
|
| 42 |
+
{file_to_lookat[j].name}SBS.txt">Download {file_to_lookat[j].name} Single Base Substition table</a>'
|
| 43 |
+
download_link3 = f'<a href="data:application/octet-stream;base64, \
|
| 44 |
+
{base64.b64encode(to_dl_sbs_summary_text[j]).decode()}" download=" \
|
| 45 |
+
{file_to_lookat[j].name}SBS_summary.txt">Download {file_to_lookat[j].name} Single Base Substition table</a>'
|
| 46 |
st.markdown(download_link1, unsafe_allow_html=True)
|
| 47 |
|
| 48 |
+
st.markdown(download_link2, unsafe_allow_html=True)
|
| 49 |
+
st.markdown(download_link3, unsafe_allow_html=True)
|
| 50 |
|
| 51 |
for j in np.arange(0,len(to_dl_indel)):
|
| 52 |
if to_dl_indel[j] != []:
|
|
|
|
| 95 |
PDFbyte1 = pdf_file.read()
|
| 96 |
with open("output/SBS96/Samples.txt","rb") as txt_file:
|
| 97 |
Txtbyte1 = txt_file.read()
|
| 98 |
+
txt_file.close()
|
| 99 |
+
hh=pd.read_table('output/SBS96/Samples.txt')
|
| 100 |
+
hh['nums']=hh.iloc[:,1]
|
| 101 |
+
hh['mutation_simple']=hh['MutationType'].apply(lambda x: re.sub('].$','',re.sub('^.\[','',x)))
|
| 102 |
+
summary_table_sbs_all=hh.groupby('mutation_simple').apply(lambda x: x.sum())[['mutation_simple','nums']]
|
| 103 |
#st.download_button(label="Download image with single base substitution profiles", key=valforkey,
|
| 104 |
# data=PDFbyte1,
|
| 105 |
# file_name="SBS.pdf",
|
|
|
|
| 110 |
PDFbyte2 = pdf_file.read()
|
| 111 |
with open("output/ID83/Samples.txt","rb") as txt_file:
|
| 112 |
Txtbyte2 = txt_file.read()
|
| 113 |
+
hh2=pd.read_table('output/ID83/Samples.txt')
|
| 114 |
+
hh2['nums']=hh2.iloc[:,1]
|
| 115 |
+
hh2['mutation_simple']=hh2['MutationType'].apply(lambda x: re.sub('].$','',re.sub('^.\[','',x)))
|
| 116 |
+
summary_table_id_all=hh2.groupby('mutation_simple').apply(lambda x: x.sum())[['mutation_simple','nums']]
|
| 117 |
else:
|
| 118 |
PDFbyte2 = []
|
| 119 |
+
Txtbyte2 = []
|
| 120 |
+
summary_table_id_all=[]
|
| 121 |
if glob.glob("output/DBS78/Suggested_Solution/COSMIC_DBS78_Decomposed_Solution/DBS78_Decomposition_Plots.pdf") != []:
|
| 122 |
with open("output/DBS78/Suggested_Solution/COSMIC_DBS78_Decomposed_Solution/DBS78_Decomposition_Plots.pdf", "rb") as pdf_file:
|
| 123 |
PDFbyte3 = pdf_file.read()
|
| 124 |
with open("output/DBS78/Samples.txt","rb") as txt_file:
|
| 125 |
Txtbyte3 = txt_file.read()
|
| 126 |
+
hh3=pd.read_table('output/DBS78/Samples.txt')
|
| 127 |
+
hh3['nums']=hh3.iloc[:,1]
|
| 128 |
+
hh3['mutation_simple']=hh3['MutationType'].apply(lambda x: re.sub('].$','',re.sub('^.\[','',x)))
|
| 129 |
+
summary_table_dbs_all=hh3.groupby('mutation_simple').apply(lambda x: x.sum())[['mutation_simple','nums']]
|
| 130 |
else:
|
| 131 |
PDFbyte3 = []
|
| 132 |
Txtbyte3=[]
|
| 133 |
+
summary_table_dbs_all=[]
|
| 134 |
os.system('rm -r output')
|
| 135 |
os.system('rm -r input')
|
| 136 |
#os.remove("output/SBS96/Suggested_Solution/COSMIC_SBS96_Decomposed_Solution/SBS96_Decomposition_Plots.pdf")
|
|
|
|
| 146 |
# data=PDFbyte2,
|
| 147 |
# file_name="idel.pdf",
|
| 148 |
# mime='application/octet-stream')
|
| 149 |
+
return PDFbyte1,PDFbyte2,PDFbyte3,Txtbyte1,Txtbyte2,Txtbyte3, summary_table_sbs_all, summary_table_id_all,summary_table_dbs_all
|
| 150 |
|
| 151 |
|
| 152 |
|
|
|
|
| 192 |
to_dl_dbs=[]
|
| 193 |
to_dl_sbs_text=[]
|
| 194 |
to_dl_indel_text=[]
|
| 195 |
+
to_dl_dbs_text=[]
|
| 196 |
+
to_dl_sbs_summary_text=[]
|
| 197 |
+
to_dl_id_summary_text=[]
|
| 198 |
+
to_dl_dbs_summary_text=[]
|
| 199 |
+
|
| 200 |
for j in np.arange(0,len(file_to_lookat)):
|
| 201 |
if not os.path.exists('input'):
|
| 202 |
os.mkdir('input')
|
|
|
|
| 220 |
|
| 221 |
|
| 222 |
if file_to_lookat !=[] and glob.glob('output/SBS96/Suggested_Solution/COSMIC_SBS96_Decomposed_Solution/*pdf'):
|
| 223 |
+
sbs_result,indel_result,dbs_result,sbs_text,indel_text,dbs_text,summary_sbs,dummary_id,summary_dbs=dl(j)
|
| 224 |
|
| 225 |
to_dl_sbs.append(sbs_result)
|
| 226 |
to_dl_sbs_text.append(sbs_text)
|
|
|
|
| 228 |
to_dl_indel_text.append(indel_text)
|
| 229 |
to_dl_dbs.append(dbs_result)
|
| 230 |
to_dl_dbs_text.append(dbs_text)
|
| 231 |
+
to_dl_sbs_summary_text.append(summary_sbs)
|
| 232 |
+
to_dl_id_summary_text.append(summary_id)
|
| 233 |
+
to_dl_dbs_summary_text.append(summary_dbs)
|
| 234 |
|
| 235 |
#show_pdf('output/SBS96/Suggested_Solution/COSMIC_SBS96_Decomposed_Solution/SBS96_Decomposition_Plots.pdf')
|
| 236 |
|
|
|
|
| 238 |
|
| 239 |
remove_old_vcf()
|
| 240 |
|
| 241 |
+
showdl(file_to_lookat,to_dl_sbs,to_dl_indel,to_dl_dbs,to_dl_sbs_text,to_dl_indel_text,to_dl_dbs_text,to_dl_sbs_summary_text,to_dl_id_summary_text,to_dl_dbs_summary_text)
|
| 242 |
components.iframe("https://cancer.sanger.ac.uk/signatures/sbs/", height=3000,width=800)
|
| 243 |
#show_pdf('output/ID83/Suggested_Solution/COSMIC_ID83_Decomposed_Solution/ID83_Decomposition_Plots.pdf')
|
| 244 |
#components.iframe("https://cancer.sanger.ac.uk/signatures/id/",height=1000,width=800)
|