def extract_and_assemble(bam_files, genome_file, white_list_file, output_dir, assembly_function_list, subsample_nb_read=None,rg_ids=[], adapter_file=None, force_merge=False): logging.info('processing %s'%output_dir) logging.info("--------------------------") logging.info("Extract the reads from bam") logging.info("--------------------------") list_consensus=RAD_bam_to_fastq.read_white_list(white_list_file) RAD_bam_to_fastq.extract_reads_from_all_bam_files_set_of_consensus(bam_files, list_consensus=list_consensus, output_dir=output_dir, all_read1_consensus_file=genome_file ) logging.info("--------------") logging.info("Assemble read2") logging.info("--------------") RAD_assemble_read2.run_all_fastq_files(output_dir, assembly_function_list, 600, force_merge=force_merge, subsample_nb_read=subsample_nb_read, rg_ids=rg_ids, adapter_file=adapter_file) logging.info("----------------------------") logging.info("Extract read groups from bam") logging.info("----------------------------") all_read_groups=get_readgroup_from_bam(bam_files) logging.info("-------------------------------------") logging.info("Align both reads back to the assembly") logging.info("-------------------------------------") RAD_smalt_align_reads_back_to_consensus.run_all_fastq_files(output_dir, all_read_groups=all_read_groups, snp_call=True) logging.info("---------------------") logging.info("Merge all the results") logging.info("---------------------") RAD_merge_results.merge_results(output_dir) logging.info("------------------------------") logging.info("Get the summary of the results") logging.info("------------------------------") RAD_summarize_assembly.run_all_summaries(output_dir)
def main(): #initialize the logging utils_logging.init_logging(logging.INFO) #Setup options optparser=_prepare_optparser() (options,args) = optparser.parse_args() #verify options arg_pass=_verifyOption(options) if not arg_pass: logging.warning(optparser.get_usage()) logging.critical("Non valid arguments: exit") sys.exit(1) if options.debug: utils_logging.init_logging(logging.DEBUG) utils_logging.init_logging(output_level=None, log_file_name=os.path.join(options.output_dir,"extract_and_assemble.log")) bam_files=[options.bam_files] if len(args)>0: bam_files.extend(args) all_assembler_to_try = options.assembler_name.split(',') assembly_function_list=[] for assembler_name in all_assembler_to_try: assembly_function=RAD_assemble_read2.get_assembly_function(assembler_name) assembly_function_list.append(assembly_function) command_runner.set_command_to_run_localy() if options.rg_ids: rg_ids=options.rg_ids.split() else: rg_ids=[] extract_and_assemble(bam_files, options.read1_consensus_file, options.white_list_file, options.output_dir, assembly_function_list, subsample_nb_read=options.subsample_nb_read, rg_ids=rg_ids, adapter_file=options.adapter_file)