def merge_sample(data): """Merge fastq and BAM files for multiple samples. """ logger.debug("Combining fastq and BAM files %s" % str(data["name"])) config = config_utils.update_w_custom(data["config"], data["info"]) if config["algorithm"].get("upload_fastq", False): fastq1, fastq2 = combine_fastq_files(data["fastq_files"], data["dirs"]["work"], config) else: fastq1, fastq2 = None, None out_file = os.path.join(data["dirs"]["work"], data["info"]["rgnames"]["sample"] + ".bam") sort_bam = merge_bam_files(data["bam_files"], data["dirs"]["work"], config, out_file=out_file) return [[{ "name": data["name"], "metadata": data["info"].get("metadata", {}), "info": data["info"], "genome_build": data["genome_build"], "sam_ref": data["sam_ref"], "work_bam": sort_bam, "fastq1": fastq1, "fastq2": fastq2, "dirs": data["dirs"], "config": config, "config_file": data["config_file"] }]]
def process_sample(sample_name, fastq_files, info, bam_files, dirs, config, config_file): """Finalize processing for a sample, potentially multiplexed. """ config = _update_config_w_custom(config, info) genome_build = info.get("genome_build", None) (_, sam_ref) = get_genome_ref(genome_build, config["algorithm"]["aligner"], dirs["galaxy"]) fastq1, fastq2 = combine_fastq_files(fastq_files, dirs["work"]) log.info("Combining and preparing wig file %s" % str(sample_name)) sort_bam = merge_bam_files(bam_files, dirs["work"], config) (gatk_bam, vrn_file, effects_file) = ("", "", "") if config["algorithm"]["recalibrate"]: log.info("Recalibrating %s with GATK" % str(sample_name)) gatk_bam = recalibrate_quality(sort_bam, fastq1, fastq2, sam_ref, dirs, config) if config["algorithm"]["snpcall"]: log.info("SNP genotyping %s with GATK" % str(sample_name)) vrn_file = run_genotyper(gatk_bam, sam_ref, config) log.info("Calculating variation effects for %s" % str(sample_name)) effects_file = variation_effects(vrn_file, genome_build, config) if config["algorithm"].get("transcript_assemble", False): tx_file = assemble_transcripts(sort_bam, sam_ref, config) if sam_ref is not None: log.info("Generating summary files: %s" % str(sample_name)) generate_align_summary(sort_bam, fastq2 is not None, sam_ref, sample_name, config, dirs) bam_to_wig(sort_bam, config, config_file) return [sample_name, fastq_files, info, sort_bam, gatk_bam, vrn_file, effects_file]
def merge_sample(data): """Merge fastq and BAM files for multiple samples. """ logger.debug("Combining fastq and BAM files %s" % str(data["name"])) config = config_utils.update_w_custom(data["config"], data["info"]) if config["algorithm"].get("upload_fastq", False): fastq1, fastq2 = combine_fastq_files(data["fastq_files"], data["dirs"]["work"], config) else: fastq1, fastq2 = None, None out_file = os.path.join(data["dirs"]["work"], data["info"]["rgnames"]["sample"] + ".bam") sort_bam = merge_bam_files(data["bam_files"], data["dirs"]["work"], config, out_file=out_file) return [ [ { "name": data["name"], "metadata": data["info"].get("metadata", {}), "info": data["info"], "genome_build": data["genome_build"], "sam_ref": data["sam_ref"], "work_bam": sort_bam, "fastq1": fastq1, "fastq2": fastq2, "dirs": data["dirs"], "config": config, "config_file": data["config_file"], } ] ]
def merge_sample(data): """Merge fastq and BAM files for multiple samples. """ logger.info("Combining fastq and BAM files %s" % str(data["name"])) config = shared.update_config_w_custom(data["config"], data["info"]) genome_build, sam_ref = shared.ref_genome_info(data["info"], config, data["dirs"]) if config["algorithm"].get("upload_fastq", False): fastq1, fastq2 = combine_fastq_files(data["fastq_files"], data["dirs"]["work"], config) else: fastq1, fastq2 = None, None sort_bam = merge_bam_files(data["bam_files"], data["dirs"]["work"], config) return [[{ "name": data["name"], "metadata": data["info"].get("metadata", {}), "info": data["info"], "genome_build": genome_build, "sam_ref": sam_ref, "work_bam": sort_bam, "fastq1": fastq1, "fastq2": fastq2, "dirs": data["dirs"], "config": config, "config_file": data["config_file"] }]]
def merge_sample(data): """Merge fastq and BAM files for multiple samples. """ logger.info("Combining fastq and BAM files %s" % str(data["name"])) config = _update_config_w_custom(data["config"], data["info"]) genome_build, sam_ref = ref_genome_info(data["info"], config, data["dirs"]) fastq1, fastq2 = combine_fastq_files(data["fastq_files"], data["dirs"]["work"], config) sort_bam = merge_bam_files(data["bam_files"], data["dirs"]["work"], config) return [[{"name": data["name"], "genome_build": genome_build, "sam_ref": sam_ref, "work_bam": sort_bam, "fastq1": fastq1, "fastq2": fastq2, "dirs": data["dirs"], "config": config, "config_file": data["config_file"]}]]
def merge_sample(data): """Merge fastq and BAM files for multiple samples. """ logger.info("Combining fastq and BAM files %s" % str(data["name"])) config = _update_config_w_custom(data["config"], data["info"]) genome_build, sam_ref = ref_genome_info(data["info"], config, data["dirs"]) if config["algorithm"].get("upload_fastq", False): fastq1, fastq2 = combine_fastq_files(data["fastq_files"], data["dirs"]["work"], config) else: fastq1, fastq2 = None, None sort_bam = merge_bam_files(data["bam_files"], data["dirs"]["work"], config) return [[{"name": data["name"], "metadata": data["info"].get("metadata", {}), "genome_build": genome_build, "sam_ref": sam_ref, "work_bam": sort_bam, "fastq1": fastq1, "fastq2": fastq2, "dirs": data["dirs"], "config": config, "config_file": data["config_file"]}]]
def merge_sample(data): """Merge fastq and BAM files for multiple samples. """ logger.info("Combining fastq and BAM files %s" % str(data["name"])) config = _update_config_w_custom(data["config"], data["info"]) genome_build, sam_ref = ref_genome_info(data["info"], config, data["dirs"]) fastq1, fastq2 = combine_fastq_files(data["fastq_files"], data["dirs"]["work"], config) sort_bam = merge_bam_files(data["bam_files"], data["dirs"]["work"], config) return [[{ "name": data["name"], "genome_build": genome_build, "sam_ref": sam_ref, "work_bam": sort_bam, "fastq1": fastq1, "fastq2": fastq2, "dirs": data["dirs"], "config": config, "config_file": data["config_file"] }]]