# Constants wrap.add('seed', [config['seed']], create_dir=False) wrap.add('refseq', [config['community']['seq']], create_dir=False) wrap.add('wgs_read_length', [config['wgs_read_length']], create_dir=False) wrap.add('wgs_insert_length', [config['wgs_insert_length']], create_dir=False) wrap.add('wgs_insert_sd', [config['wgs_insert_sd']], create_dir=False) wrap.add('wgs_base', [config['wgs_base']], create_dir=False) # Variation genomes = appconfig.find_files(config['community']['folder'], config['community']['seq']) commPaths = [os.path.dirname(pn) for pn in genomes] wrap.add('community', commPaths) tableFolder = os.path.join(config['reference']['folder'], config['reference']['table_folder']) tablePaths = appconfig.get_files(tableFolder, 'table') wrap.add('comm_table', tablePaths, label_func=os.path.basename) wrap.add('wgs_xfold', config['wgs_xfold']) @wrap.add_target('run_quast') @name_targets def generate_wgs(outdir, c): asm_path = os.path.join(config['wgs_folder'], '/'.join(outdir.split('/')[1:]), config['wgs_asmdir']) ctg_file = '{0}/{1}.contigs.fasta'.format(asm_path, config['wgs_base']) sources = ['{1[community][folder]}/{0[community]}/{0[refseq]}'.format(c, config), ctg_file] target = os.path.join(outdir, 'quast/summary/report.html') action = exec_env.resolve_action({ 'sge': 'bin/sgerun_QUAST.sh $SOURCES.abspath $TARGET.abspath'.format(c, od=outdir)
env = Environment(ENV=os.environ) # Constants wrap.add("seed", [config["seed"]], create_dir=False) wrap.add("refseq", [config["community"]["seq"]], create_dir=False) wrap.add("hic_base", [config["hic_base"]], create_dir=False) wrap.add("hic_inter_prob", [config["hic_inter_prob"]], create_dir=False) wrap.add("hic_read_length", [config["hic_read_length"]], create_dir=False) # Variation genomes = appconfig.find_files(config["community"]["folder"], config["community"]["seq"]) commPaths = [os.path.dirname(pn) for pn in genomes] wrap.add("community", commPaths) tableFolder = os.path.join(config["reference"]["folder"], config["reference"]["table_folder"]) tablePaths = appconfig.get_files(tableFolder, "table") wrap.add("comm_table", tablePaths, label_func=os.path.basename) wrap.add("hic_n_frag", config["hic_n_frag"]) @wrap.add_target("generate_hic") def generate_hic(outdir, c): source = "{1[community][folder]}/{0[community]}/{0[refseq]}".format(c, config) target = "{od}/{0[hic_base]}.fasta".format(c, od=outdir) action = ( "bin/pbsrun_HiC.sh " "{0[seed]} {0[hic_n_frag]} {0[hic_read_length]} {0[hic_inter_prob]} " "{0[comm_table]} $SOURCE.abspath $TARGET.abspath".format(c) ) return env.Command(target, source, action)
wrap.add('seed', [config['seed']], create_dir=False) wrap.add('refseq', [config['community']['seq']], create_dir=False) wrap.add('wgs_read_length', [config['wgs_read_length']], create_dir=False) wrap.add('wgs_insert_length', [config['wgs_insert_length']], create_dir=False) wrap.add('wgs_insert_sd', [config['wgs_insert_sd']], create_dir=False) wrap.add('wgs_base', [config['wgs_base']], create_dir=False) # Variation genomes = appconfig.find_files(config['community']['folder'], config['community']['seq']) commPaths = [os.path.dirname(pn) for pn in genomes] wrap.add('community', commPaths) tableFolder = os.path.join(config['reference']['folder'], config['reference']['table_folder']) tablePaths = appconfig.get_files(tableFolder, 'table') wrap.add('comm_table', tablePaths, label_func=os.path.basename) wrap.add('wgs_xfold', config['wgs_xfold']) @wrap.add_target('run_quast') @name_targets def generate_wgs(outdir, c): asm_path = os.path.join(config['wgs_folder'], '/'.join(outdir.split('/')[1:]), config['wgs_asmdir']) ctg_file = '{0}/{1}.contigs.fasta'.format(asm_path, config['wgs_base']) sources = [ '{1[community][folder]}/{0[community]}/{0[refseq]}'.format(c, config),
env = Environment(ENV=os.environ) # Constants wrap.add('seed', [config['seed']], create_dir=False) wrap.add('genomes', [config['community']['seq']], create_dir=False) wrap.add('basis_seq', [config['reference']['raw_seq']], create_dir=False) wrap.add('seq_len', [config['reference']['seq_len']], create_dir=False) wrap.add('sg_scale', [config['reference']['sg_scale']], create_dir=False) # Variation # trees are sourced from folder seqFolder = os.path.join(config['reference']['folder']) treeFolder = os.path.join(config['reference']['folder'], config['reference']['tree_folder']) treePaths = appconfig.get_files(treeFolder, config['reference']['tree_suffix']) wrap.add('tree', treePaths, label_func=os.path.basename) # scale divergence of tree evenly across log space wrap.add('branch_length', [ '{:.4e}'.format(n) for n in np.logspace( start=math.log(config['reference']['tree_scale']['max']), stop=math.log(config['reference']['tree_scale']['min']), num=config['reference']['tree_scale']['steps'], base=math.e, endpoint=True).tolist() ]) @wrap.add_target('generate_set') def generate_set(outdir, c):
wrap = SConsWrap(nest, config["community"]["folder"]) env = Environment(ENV=os.environ) # Constants wrap.add("seed", [config["seed"]], create_dir=False) wrap.add("genomes", [config["community"]["seq"]], create_dir=False) wrap.add("basis_seq", [config["reference"]["raw_seq"]], create_dir=False) wrap.add("seq_len", [config["reference"]["seq_len"]], create_dir=False) wrap.add("sg_scale", [config["reference"]["sg_scale"]], create_dir=False) # Variation # trees are sourced from folder seqFolder = os.path.join(config["reference"]["folder"]) treeFolder = os.path.join(config["reference"]["folder"], config["reference"]["tree_folder"]) treePaths = appconfig.get_files(treeFolder, config["reference"]["tree_suffix"]) wrap.add("tree", treePaths, label_func=os.path.basename) # scale divergence of tree evenly across log space wrap.add( "branch_length", [ "{:.4e}".format(n) for n in np.logspace( start=math.log(config["reference"]["tree_scale"]["max"]), stop=math.log(config["reference"]["tree_scale"]["min"]), num=config["reference"]["tree_scale"]["steps"], base=math.e, endpoint=True, ).tolist() ],