Пример #1
0
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)
Пример #2
0
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)