From e8aa277e44bca6ae6fa2a51f7c3a2d08960acb79 Mon Sep 17 00:00:00 2001 From: "Godwin N. Ani" Date: Mon, 7 Apr 2025 11:20:34 -0400 Subject: [PATCH] Update contamination.py --- PTL2/Scripts/contamination.py | 39 +++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/PTL2/Scripts/contamination.py b/PTL2/Scripts/contamination.py index 1fea83f..dff9172 100644 --- a/PTL2/Scripts/contamination.py +++ b/PTL2/Scripts/contamination.py @@ -332,29 +332,32 @@ def cl_fasttree(params): os.system('FastTree ' + params.output + '/Output/Guidance/' + file + ' > ' + params.output + '/Output/Trees/' + file.split('.')[0] + '.FastTree.tre') -#Run IQ-Tree -if params.cl_tree_method == 'iqtree' or params.cl_tree_method == 'iqtree_fast': - #Make intermediate folders +#Utility function to run Iqtree in between iterations (if this is the chosen tree-building method) +def cl_iqtree(params): if not os.path.isdir(params.output + '/Output/Intermediate/IQTree'): os.mkdir(params.output + '/Output/Intermediate/IQTree') tax_iqtree_outdir = params.output + '/Output/Intermediate/IQTree/' + file.split('.')[0].split('_preguidance')[0] os.mkdir(tax_iqtree_outdir) + for file in os.listdir(params.output + '/Output/Guidance'): + if file.split('.')[-1] in ('fasta', 'fas', 'faa'): + os.system('iqtree2 -s ' + params.output + '/Output/Guidance/' + file + ' -m LG+G -T 10 --prefix ' + tax_iqtree_outdir + '/' + file.split('.')[0].split('_preguidance')[0] + '.IQTree') + #Copy over the final output + if os.path.isfile(tax_iqtree_outdir + '/' + file.split('.')[0].split('_preguidance')[0] + '.IQTree.treefile'): + os.system('cp ' + tax_iqtree_outdir + '/' + file.split('.')[0].split('_preguidance')[0] + '.IQTree.treefile ' + params.output + '/Output/Trees/' + file.split('.')[0].split('_preguidance')[0] + '.IQTree.tree') + - #Utility function to run Iqtree in between iterations (if this is the chosen tree-building method) - def cl_iqtree(params): - for file in os.listdir(params.output + '/Output/Guidance'): - if file.split('.')[-1] in ('fasta', 'fas', 'faa'): - os.system('iqtree2 -s ' + params.output + '/Output/Guidance/' + file + ' -m LG+G -T 10 --prefix ' + tax_iqtree_outdir + '/' + file.split('.')[0].split('_preguidance')[0] + '.IQTree') - - #Utility function to run Iqtree_fast in between iterations (if this is the chosen tree-building method) - def cl_iqtree_fast(params): - for file in os.listdir(params.output + '/Output/Guidance'): - if file.split('.')[-1] in ('fasta', 'fas', 'faa'): - os.system('iqtree2 -s ' + params.output + '/Output/Guidance/' + file + ' -m LG+G -T 10 --fast --prefix ' + tax_iqtree_outdir + '/' + file.split('.')[0].split('_preguidance')[0] + '.IQTree') - - #Copy over the final output - if os.path.isfile(tax_iqtree_outdir + '/' + file.split('.')[0].split('_preguidance')[0] + '.IQTree.treefile'): - os.system('cp ' + tax_iqtree_outdir + '/' + file.split('.')[0].split('_preguidance')[0] + '.IQTree.treefile ' + params.output + '/Output/Trees/' + file.split('.')[0].split('_preguidance')[0] + '.IQTree.tree') +#Utility function to run Iqtree_fast in between iterations (if this is the chosen tree-building method) +def cl_iqtree_fast(params): + if not os.path.isdir(params.output + '/Output/Intermediate/IQTree'): + os.mkdir(params.output + '/Output/Intermediate/IQTree') + tax_iqtree_outdir = params.output + '/Output/Intermediate/IQTree/' + file.split('.')[0].split('_preguidance')[0] + os.mkdir(tax_iqtree_outdir) + for file in os.listdir(params.output + '/Output/Guidance'): + if file.split('.')[-1] in ('fasta', 'fas', 'faa'): + os.system('iqtree2 -s ' + params.output + '/Output/Guidance/' + file + ' -m LG+G -T 10 --fast --prefix ' + tax_iqtree_outdir + '/' + file.split('.')[0].split('_preguidance')[0] + '.IQTree') + #Copy over the final output + if os.path.isfile(tax_iqtree_outdir + '/' + file.split('.')[0].split('_preguidance')[0] + '.IQTree.treefile'): + os.system('cp ' + tax_iqtree_outdir + '/' + file.split('.')[0].split('_preguidance')[0] + '.IQTree.treefile ' + params.output + '/Output/Trees/' + file.split('.')[0].split('_preguidance')[0] + '.IQTree.tree') #Wrapper script to manage parameters and iteration def run(params):