Mercurial > repos > dvanzessen > bcbio_nextgen_emc
diff script.py @ 0:2ed60a09d6b6 draft
Uploaded
author | dvanzessen |
---|---|
date | Mon, 15 Jul 2019 05:11:46 -0400 |
parents | |
children | 2e5223259a56 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/script.py Mon Jul 15 05:11:46 2019 -0400 @@ -0,0 +1,80 @@ +import os +import argparse +from collections import Counter +from jinja2 import Template + + +def main(): + # --workdir `pwd` --output-dir `pwd`/output --input + parser = argparse.ArgumentParser() + + parser.add_argument("--workdir", "-w", required=True) + parser.add_argument("--output-dir", "-o", required=True) + parser.add_argument("--template", "-t", required=True) + parser.add_argument("--output-conf", "-c", required=True) + parser.add_argument("--input", "-i", action="append", required=True) + parser.add_argument("--bed", "-b", default=None) + + + + args = parser.parse_args() + + workdir = args.workdir + output_dir = args.output_dir + input_files_raw = args.input + template_file_path = args.template + output_config_path = args.output_conf + bed_file_path = args.bed + + + if bed_file_path: + bed_new_name = "bed_file.bed" + bed_new_file_path = os.path.join( + workdir, + bed_new_name + ) + os.symlink(bed_file_path, bed_new_file_path) + bed_file_path = bed_new_file_path + + input_files = [] + phenotype_counter = Counter() + for input_file in input_files_raw: + if input_file.find(":"): + forward_file, reverse_file, phenotype = input_file.split(":") + phenotype_counter.update(phenotype) + phenotype_count = phenotype_counter[phenotype] + + forward_new_name = "{phenotype}_{phenotype_count}_R1.fastq.gz".format(phenotype=phenotype, phenotype_count=phenotype_count) + forward_new_file_path = os.path.join( + workdir, + forward_new_name + ) + os.symlink(forward_file, forward_new_file_path) + + reverse_new_name = "{phenotype}_{phenotype_count}_R2.fastq.gz".format(phenotype=phenotype, phenotype_count=phenotype_count) + reverse_new_file_path = os.path.join( + workdir, + reverse_new_name + ) + os.symlink(reverse_file, reverse_new_file_path) + + input_files.append( + { + "forward": forward_new_file_path, + "reverse": reverse_new_file_path, + "description": "{phenotype}_{phenotype_index}".format(phenotype=phenotype, phenotype_index=phenotype_count), + "phenotype": phenotype + } + ) + + with open(output_config_path, 'w') as config_file_handle, open(template_file_path, 'r') as template_file_handle: + template = Template(template_file_handle.read()) + config_file_handle.write(template.render( + samples=input_files, + output_dir=output_dir, + bed_file_path=bed_file_path + )) + + +if __name__ == "__main__": + main() \ No newline at end of file