Eitan177 commited on
Commit
250b60b
·
1 Parent(s): c7ae2ad

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +59 -20
app.py CHANGED
@@ -8,6 +8,7 @@ import shutil
8
  import os
9
  import re
10
  from SigProfilerExtractor import sigpro as sig
 
11
  import sys
12
  import numpy as np
13
  import pandas as pd
@@ -34,6 +35,16 @@ def show_pdf(file_path):
34
  pdf_display = f'<iframe src="data:application/pdf;base64,{base64_pdf}" width="1500" height="1000" type="application/pdf"></iframe>'
35
  st.markdown(pdf_display, unsafe_allow_html=True)
36
 
 
 
 
 
 
 
 
 
 
 
37
  #@st.cache_data(experimental_allow_widgets=True)
38
  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):
39
  for j in np.arange(0,len(to_dl_sbs)):
@@ -98,7 +109,16 @@ def showdl(file_to_lookat,to_dl_sbs,to_dl_indel,to_dl_dbs,to_dl_sbs_text,to_dl_i
98
  # mime='application/octet-stream')
99
 
100
 
 
 
 
 
 
 
 
 
101
 
 
102
  def dl(valforkey):
103
  #breakpoint()
104
  seev=glob.glob('output/SBS96/Suggested_Solution/COSMIC_SBS96_Decomposed_Solution/*pdf')
@@ -223,6 +243,8 @@ if file_to_lookat !=[] and sub:
223
  to_dl_sbs_summary_text=[]
224
  to_dl_id_summary_text=[]
225
  to_dl_dbs_summary_text=[]
 
 
226
 
227
  for j in np.arange(0,len(file_to_lookat)):
228
  if not os.path.exists('input'):
@@ -267,31 +289,48 @@ if file_to_lookat !=[] and sub:
267
  #vcfuse=glob.glob('file_to_lookat[0].name')[0]
268
  #shutil.copy2(vcfuse,'input/'+vcfuse)
269
  #pdb.set_trace()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
270
 
271
  with st.spinner('computing signatures'):
272
  sig.sigProfilerExtractor("vcf", "output", "input", minimum_signatures=1, maximum_signatures=3,nmf_test_conv= 1000,nmf_tolerance= 1e-10,max_nmf_iterations=100000,min_nmf_iterations= 1000)
273
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
274
 
275
- if file_to_lookat !=[] and glob.glob('output/SBS96/Suggested_Solution/COSMIC_SBS96_Decomposed_Solution/*pdf'):
276
- sbs_result,indel_result,dbs_result,sbs_text,indel_text,dbs_text,summary_sbs,summary_id,summary_dbs=dl(j)
277
-
278
- to_dl_sbs.append(sbs_result)
279
- to_dl_sbs_text.append(sbs_text)
280
- to_dl_indel.append(indel_result)
281
- to_dl_indel_text.append(indel_text)
282
- to_dl_dbs.append(dbs_result)
283
- to_dl_dbs_text.append(dbs_text)
284
- to_dl_sbs_summary_text.append(summary_sbs)
285
- to_dl_id_summary_text.append(summary_id)
286
- to_dl_dbs_summary_text.append(summary_dbs)
287
-
288
- #show_pdf('output/SBS96/Suggested_Solution/COSMIC_SBS96_Decomposed_Solution/SBS96_Decomposition_Plots.pdf')
289
-
290
-
291
-
292
- remove_old_vcf()
293
 
294
- 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)
 
 
 
295
  components.iframe("https://cancer.sanger.ac.uk/signatures/sbs/", height=3000,width=800)
296
  #show_pdf('output/ID83/Suggested_Solution/COSMIC_ID83_Decomposed_Solution/ID83_Decomposition_Plots.pdf')
297
  #components.iframe("https://cancer.sanger.ac.uk/signatures/id/",height=1000,width=800)
 
8
  import os
9
  import re
10
  from SigProfilerExtractor import sigpro as sig
11
+ from SigProfilerMatrixGenerator.scripts import SigProfilerMatrixGeneratorFunc as datadump
12
  import sys
13
  import numpy as np
14
  import pandas as pd
 
35
  pdf_display = f'<iframe src="data:application/pdf;base64,{base64_pdf}" width="1500" height="1000" type="application/pdf"></iframe>'
36
  st.markdown(pdf_display, unsafe_allow_html=True)
37
 
38
+ def showdl_counts(file_to_lookat,to_dl_sbs96,to_dl_sbs1536):
39
+ download_link1 = f'<a href="data:application/octet-stream;base64, \
40
+ {base64.b64encode(to_dl_sbs96[j]).decode()}" download=" \
41
+ {file_to_lookat[j].name}96SBS.txt">Download {file_to_lookat[j].name} Single Base Substition (96) table</a>'
42
+
43
+ download_link2 = f'<a href="data:application/octet-stream;base64, \
44
+ {base64.b64encode(to_dl_sbs1536[j]).decode()}" download=" \
45
+ {file_to_lookat[j].name}1536SBS.txt">Download {file_to_lookat[j].name} Single Base Substition (1536) table</a>'
46
+ st.markdown(download_link1, unsafe_allow_html=True)
47
+ st.markdown(download_link2, unsafe_allow_html=True)
48
  #@st.cache_data(experimental_allow_widgets=True)
49
  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):
50
  for j in np.arange(0,len(to_dl_sbs)):
 
109
  # mime='application/octet-stream')
110
 
111
 
112
+ def dl_counts(valforkey):
113
+ with open("SBS96.txt","rb") as txt_file:
114
+ sbs96_all_bytes = txt_file.read()
115
+ txt_file.close()
116
+ with open("SBS1536","rb") as txt_file:
117
+ sbs96_all_bytes = txt_file.read()
118
+ txt_file.close()
119
+ return sbs96_all_bytes, sbs1536_all_bytes
120
 
121
+
122
  def dl(valforkey):
123
  #breakpoint()
124
  seev=glob.glob('output/SBS96/Suggested_Solution/COSMIC_SBS96_Decomposed_Solution/*pdf')
 
243
  to_dl_sbs_summary_text=[]
244
  to_dl_id_summary_text=[]
245
  to_dl_dbs_summary_text=[]
246
+ to_dl_sbs96=[]
247
+ to_dl_sbs1536=[]
248
 
249
  for j in np.arange(0,len(file_to_lookat)):
250
  if not os.path.exists('input'):
 
289
  #vcfuse=glob.glob('file_to_lookat[0].name')[0]
290
  #shutil.copy2(vcfuse,'input/'+vcfuse)
291
  #pdb.set_trace()
292
+ if no_profiles_only_counts == True:
293
+ refgen="GRCh37"
294
+ project = "input"
295
+ project_name = project.split("/")[-1]
296
+ with st.spinner('computing counts only'):
297
+ data = datadump.SigProfilerMatrixGeneratorFunc(project_name, refgen, project, exome=False, bed_file=None, chrom_based=False, plot=False, gs=False)
298
+ data['96'].to_csv('sbs96.txt',sep='\t',header=False,index=True)
299
+ data['1536'].to_csv('sbs1536.txt',sep='\t',header=False,index=True)
300
+ sbs96_result,sbs1536_result=dl_counts(j)
301
+ to_dl_sbs96.append(sbs96_result)
302
+ to_dl_sbs1536.append(sbs1536_result)
303
+ remove_old_vcf()
304
+
305
+ else:
306
 
307
  with st.spinner('computing signatures'):
308
  sig.sigProfilerExtractor("vcf", "output", "input", minimum_signatures=1, maximum_signatures=3,nmf_test_conv= 1000,nmf_tolerance= 1e-10,max_nmf_iterations=100000,min_nmf_iterations= 1000)
309
+
310
+
311
+ if file_to_lookat !=[] and glob.glob('output/SBS96/Suggested_Solution/COSMIC_SBS96_Decomposed_Solution/*pdf'):
312
+ sbs_result,indel_result,dbs_result,sbs_text,indel_text,dbs_text,summary_sbs,summary_id,summary_dbs=dl(j)
313
+
314
+ to_dl_sbs.append(sbs_result)
315
+ to_dl_sbs_text.append(sbs_text)
316
+ to_dl_indel.append(indel_result)
317
+ to_dl_indel_text.append(indel_text)
318
+ to_dl_dbs.append(dbs_result)
319
+ to_dl_dbs_text.append(dbs_text)
320
+ to_dl_sbs_summary_text.append(summary_sbs)
321
+ to_dl_id_summary_text.append(summary_id)
322
+ to_dl_dbs_summary_text.append(summary_dbs)
323
+
324
+ #show_pdf('output/SBS96/Suggested_Solution/COSMIC_SBS96_Decomposed_Solution/SBS96_Decomposition_Plots.pdf')
325
 
326
+
327
+
328
+ remove_old_vcf()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
329
 
330
+ if no_profiles_only_counts == True:
331
+ showdl_counts(file_to_lookat,to_dl_sbs96,to_dl_sbs1536)
332
+ else:
333
+ 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)
334
  components.iframe("https://cancer.sanger.ac.uk/signatures/sbs/", height=3000,width=800)
335
  #show_pdf('output/ID83/Suggested_Solution/COSMIC_ID83_Decomposed_Solution/ID83_Decomposition_Plots.pdf')
336
  #components.iframe("https://cancer.sanger.ac.uk/signatures/id/",height=1000,width=800)