apscale-gui 3.2.2__tar.gz → 3.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {apscale_gui-3.2.2/apscale_gui.egg-info → apscale_gui-3.2.4}/PKG-INFO +1 -1
- {apscale_gui-3.2.2 → apscale_gui-3.2.4}/apscale_gui/apscale_gui.py +60 -18
- {apscale_gui-3.2.2 → apscale_gui-3.2.4/apscale_gui.egg-info}/PKG-INFO +1 -1
- {apscale_gui-3.2.2 → apscale_gui-3.2.4}/setup.py +1 -1
- {apscale_gui-3.2.2 → apscale_gui-3.2.4}/LICENSE +0 -0
- {apscale_gui-3.2.2 → apscale_gui-3.2.4}/MANIFEST.in +0 -0
- {apscale_gui-3.2.2 → apscale_gui-3.2.4}/README.md +0 -0
- {apscale_gui-3.2.2 → apscale_gui-3.2.4}/apscale_gui/__init__.py +0 -0
- {apscale_gui-3.2.2 → apscale_gui-3.2.4}/apscale_gui/__main__.py +0 -0
- {apscale_gui-3.2.2 → apscale_gui-3.2.4}/apscale_gui/_user_data/.DS_Store +0 -0
- {apscale_gui-3.2.2 → apscale_gui-3.2.4}/apscale_gui/_user_data/user_data.txt +0 -0
- {apscale_gui-3.2.2 → apscale_gui-3.2.4}/apscale_gui.egg-info/SOURCES.txt +0 -0
- {apscale_gui-3.2.2 → apscale_gui-3.2.4}/apscale_gui.egg-info/dependency_links.txt +0 -0
- {apscale_gui-3.2.2 → apscale_gui-3.2.4}/apscale_gui.egg-info/entry_points.txt +0 -0
- {apscale_gui-3.2.2 → apscale_gui-3.2.4}/apscale_gui.egg-info/requires.txt +0 -0
- {apscale_gui-3.2.2 → apscale_gui-3.2.4}/apscale_gui.egg-info/top_level.txt +0 -0
- {apscale_gui-3.2.2 → apscale_gui-3.2.4}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apscale_gui
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.4
|
|
4
4
|
Summary: Advanced Pipeline for Simple yet Comprehensive AnaLysEs of DNA metabarcoding data - Graphical User Interface
|
|
5
5
|
Home-page: https://github.com/TillMacher/apscale_gui
|
|
6
6
|
Author: Till-Hendrik Macher
|
|
@@ -373,11 +373,32 @@ def update_settings_file(settings_xlsx, settings_dfs):
|
|
|
373
373
|
|
|
374
374
|
st.success(f"Settings updated and saved to {settings_xlsx}")
|
|
375
375
|
|
|
376
|
-
def run_apscale(task, project_folder):
|
|
376
|
+
def run_apscale(task, project_folder, modules_to_run):
|
|
377
377
|
|
|
378
378
|
st.info('Starting apscale analysis! Please refer to the terminal for live outputs!')
|
|
379
379
|
print('')
|
|
380
380
|
|
|
381
|
+
if modules_to_run != []:
|
|
382
|
+
for task in modules_to_run:
|
|
383
|
+
if task == "PE-merging":
|
|
384
|
+
b_pe_merging.main(project_folder)
|
|
385
|
+
elif task == "Primer-trimming":
|
|
386
|
+
c_primer_trimming.main(project_folder)
|
|
387
|
+
elif task == "Quality-filtering":
|
|
388
|
+
d_quality_filtering.main(project_folder)
|
|
389
|
+
elif task == "Dereplication":
|
|
390
|
+
e_dereplication.main(project_folder)
|
|
391
|
+
elif task == "Denoising":
|
|
392
|
+
f_denoising.main(project_folder)
|
|
393
|
+
elif task == "SWARM clustering":
|
|
394
|
+
g_swarm_clustering.main(project_folder)
|
|
395
|
+
elif task == "Replicate merging":
|
|
396
|
+
h_replicate_merging.main(project_folder)
|
|
397
|
+
elif task == "NC removal":
|
|
398
|
+
i_nc_removal.main(project_folder)
|
|
399
|
+
elif task == "Generate read table":
|
|
400
|
+
j_generate_read_table.main(project_folder)
|
|
401
|
+
|
|
381
402
|
if task == "Run apscale (basic mode)":
|
|
382
403
|
b_pe_merging.main(project_folder)
|
|
383
404
|
c_primer_trimming.main(project_folder)
|
|
@@ -386,7 +407,7 @@ def run_apscale(task, project_folder):
|
|
|
386
407
|
f_denoising.main(project_folder)
|
|
387
408
|
g_swarm_clustering.main(project_folder)
|
|
388
409
|
j_generate_read_table.main(project_folder)
|
|
389
|
-
|
|
410
|
+
elif task == "Run apscale (complete mode)":
|
|
390
411
|
b_pe_merging.main(project_folder)
|
|
391
412
|
c_primer_trimming.main(project_folder)
|
|
392
413
|
d_quality_filtering.main(project_folder)
|
|
@@ -396,27 +417,29 @@ def run_apscale(task, project_folder):
|
|
|
396
417
|
h_replicate_merging.main(project_folder)
|
|
397
418
|
i_nc_removal.main(project_folder)
|
|
398
419
|
j_generate_read_table.main(project_folder)
|
|
399
|
-
|
|
420
|
+
elif task == "PE-merging":
|
|
400
421
|
b_pe_merging.main(project_folder)
|
|
401
|
-
|
|
422
|
+
elif task == "Primer-trimming":
|
|
402
423
|
c_primer_trimming.main(project_folder)
|
|
403
|
-
|
|
424
|
+
elif task == "Quality-filtering":
|
|
404
425
|
d_quality_filtering.main(project_folder)
|
|
405
|
-
|
|
426
|
+
elif task == "Dereplication":
|
|
406
427
|
e_dereplication.main(project_folder)
|
|
407
|
-
|
|
428
|
+
elif task == "Denoising":
|
|
408
429
|
f_denoising.main(project_folder)
|
|
409
|
-
|
|
430
|
+
elif task == "SWARM clustering":
|
|
410
431
|
g_swarm_clustering.main(project_folder)
|
|
411
|
-
|
|
432
|
+
elif task == "Replicate merging":
|
|
412
433
|
h_replicate_merging.main(project_folder)
|
|
413
|
-
|
|
434
|
+
elif task == "NC removal":
|
|
414
435
|
i_nc_removal.main(project_folder)
|
|
415
|
-
|
|
436
|
+
elif task == "Generate read table":
|
|
416
437
|
j_generate_read_table.main(project_folder)
|
|
417
438
|
|
|
418
439
|
st.success('Finished apscale analysis!')
|
|
419
440
|
print('')
|
|
441
|
+
print('Finished apscale analysis!')
|
|
442
|
+
print('')
|
|
420
443
|
|
|
421
444
|
def run_apscale_blast(project_folder, available_fasta_files, available_databases):
|
|
422
445
|
|
|
@@ -449,8 +472,7 @@ def run_apscale_blast(project_folder, available_fasta_files, available_databases
|
|
|
449
472
|
|
|
450
473
|
categories = ['t_species', 't_genus', 't_family', 't_order', 't_class']
|
|
451
474
|
thresholds = ','.join([str(st.session_state[i]) for i in categories])
|
|
452
|
-
filter_mode
|
|
453
|
-
b_filter(output_folder, database, thresholds, str(st.session_state['n_cores']), filter_mode, st.session_state['rating_range'])
|
|
475
|
+
b_filter(output_folder, database, thresholds, str(st.session_state['n_cores']), st.session_state["filter_mode"], st.session_state['rating_range'], st.session_state['sim_range'])
|
|
454
476
|
|
|
455
477
|
st.success('Finished blastn!')
|
|
456
478
|
print('')
|
|
@@ -938,12 +960,28 @@ def main():
|
|
|
938
960
|
############################################################################################################
|
|
939
961
|
st.subheader('Run apscale')
|
|
940
962
|
options = ['Run apscale (basic mode)', 'Run apscale (complete mode)', 'PE-merging', 'Primer-trimming', 'Quality-filtering', 'Dereplication', 'Denoising', 'SWARM clustering', 'Replicate merging', 'NC removal', 'Generate read table']
|
|
941
|
-
|
|
963
|
+
col1, col2 = st.columns(2)
|
|
964
|
+
with col1:
|
|
965
|
+
run_mode = st.selectbox(label='Select module to run', options=options, index=0, key='run_apscale_mode')
|
|
966
|
+
with col2:
|
|
967
|
+
selected_module = False
|
|
968
|
+
modules_to_run = []
|
|
969
|
+
if run_mode not in ['Run apscale (basic mode)', 'Run apscale (complete mode)']:
|
|
970
|
+
selected_module = st.selectbox(label='Select module(s) to run', options=['Run all following modules', 'Run selected module only'], key='run_apscale_mode_continous')
|
|
971
|
+
if selected_module == 'Run all following modules':
|
|
972
|
+
selected_module_basic = st.selectbox(label='Run in basic mode', options=['Yes', 'No'], key='selected_module_basic')
|
|
973
|
+
if selected_module == 'Run all following modules':
|
|
974
|
+
module_loc = options.index(run_mode)
|
|
975
|
+
modules_to_run = options[module_loc:]
|
|
976
|
+
if selected_module_basic == 'Yes':
|
|
977
|
+
modules_to_run = [i for i in modules_to_run if i not in ['Replicate merging', 'NC removal']]
|
|
978
|
+
modules_disp = ' -> '.join(modules_to_run)
|
|
979
|
+
st.info(f'All following modules will be run:\n\n{modules_disp}')
|
|
942
980
|
|
|
943
981
|
if st.session_state["P5 Primer (5' - 3')"] == '' or st.session_state["P7 Primer (5' - 3')"] == '' or st.session_state['min length'] == '' or st.session_state['max length'] =='':
|
|
944
982
|
st.error('Please fill out all required fields!')
|
|
945
983
|
elif float(st.session_state["sequence group threshold"]) >= 1:
|
|
946
|
-
st.error('Please choose a sequence group threshold
|
|
984
|
+
st.error('Please choose a sequence group threshold between 0 and 0.99.\n\nESVs are generated seperately!')
|
|
947
985
|
else:
|
|
948
986
|
if st.session_state['run_apscale_mode'] == 'Run apscale (basic mode)':
|
|
949
987
|
st.info('The "Basic mode" mode skips "Replicate merging" and "NC removal".')
|
|
@@ -951,7 +989,7 @@ def main():
|
|
|
951
989
|
st.info('The "Complete mode" runs all modules (except specifically disabled above).')
|
|
952
990
|
if st.button('Start raw data analysis'):
|
|
953
991
|
update_settings_file(settings_xlsx, settings_dfs)
|
|
954
|
-
run_apscale(st.session_state['run_apscale_mode'], project_folder)
|
|
992
|
+
run_apscale(st.session_state['run_apscale_mode'], project_folder, modules_to_run)
|
|
955
993
|
|
|
956
994
|
|
|
957
995
|
############################################################################################################
|
|
@@ -965,7 +1003,7 @@ def main():
|
|
|
965
1003
|
st.text_input(label='n_cores', key='n_cores', value=multiprocessing.cpu_count()-2)
|
|
966
1004
|
st.text_input(label='subset_size', key='subset_size', value=100)
|
|
967
1005
|
with col2:
|
|
968
|
-
st.selectbox(label='Task', key='task', options=['blastn', 'megablast', 'dc-megablast'])
|
|
1006
|
+
st.selectbox(label='Task', key='task', options=['blastn', 'megablast', 'dc-megablast'], index=1)
|
|
969
1007
|
st.text_input(label='max_target_seqs', key='max_target_seqs', value=20)
|
|
970
1008
|
# Database & query
|
|
971
1009
|
available_databases = {Path(i).name:Path(i) for i in glob.glob(str(path_to_projects / 'APSCALE_databases' / '*'))}
|
|
@@ -984,7 +1022,11 @@ def main():
|
|
|
984
1022
|
st.text_input(label='Order (%)', key='t_order', value=87)
|
|
985
1023
|
with col2:
|
|
986
1024
|
st.selectbox(label='Masking', key='masking', options=[True, False], index=0)
|
|
987
|
-
|
|
1025
|
+
filter_mode_dict = {'similarity -> e-value -> rating (optional)':"1", 'e-value -> similarity -> rating (optional)':"2", 'similarity -> rating (optional)':"3"}
|
|
1026
|
+
filter_mode_key = st.selectbox(label='Filter mode', key='filter_mode_key', options=filter_mode_dict.keys())
|
|
1027
|
+
st.session_state["filter_mode"] = filter_mode_dict[filter_mode_key]
|
|
1028
|
+
st.selectbox(label='Rating range', key='rating_range', options=[i for i in range(0, 11)], index=5)
|
|
1029
|
+
st.selectbox(label='Similarity range', key='sim_range', options=[i for i in range(0, 11)], index=0)
|
|
988
1030
|
# Run blast
|
|
989
1031
|
st.subheader('Run apscale-blast')
|
|
990
1032
|
if st.button(f'Start taxonomic assignment'):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apscale_gui
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.4
|
|
4
4
|
Summary: Advanced Pipeline for Simple yet Comprehensive AnaLysEs of DNA metabarcoding data - Graphical User Interface
|
|
5
5
|
Home-page: https://github.com/TillMacher/apscale_gui
|
|
6
6
|
Author: Till-Hendrik Macher
|
|
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
|
|
|
5
5
|
|
|
6
6
|
setuptools.setup(
|
|
7
7
|
name="apscale_gui",
|
|
8
|
-
version="3.2.
|
|
8
|
+
version="3.2.4",
|
|
9
9
|
author="Till-Hendrik Macher",
|
|
10
10
|
author_email="macher@uni-trier.de",
|
|
11
11
|
description="Advanced Pipeline for Simple yet Comprehensive AnaLysEs of DNA metabarcoding data - Graphical User Interface",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|