def main(): ref_bed = snakemake.input.ref_bed nonref_bed = snakemake.input.nonref_bed reference_fasta = snakemake.input.reference_fasta threads = snakemake.threads log = snakemake.params.log sample_name = snakemake.params.sample_name out_dir = snakemake.params.out_dir chromosomes = snakemake.params.chromosomes.split(",") status_log = snakemake.params.status_log out_bed = snakemake.output[0] succeeded = mccutils.check_status_file(status_log) if succeeded: mccutils.log("ngs_te_mapper2","processing ngs_te_mapper2 results", log=log) insertions = read_insertions(ref_bed, nonref_bed, chromosomes, sample_name, out_dir) if len(insertions) > 0: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="ngs_te_mapper2") intertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="ngs_te_mapper2") output.write_vcf(insertions, reference_fasta, sample_name, "ngs_te_mapper2", out_dir) else: mccutils.run_command(["touch", out_dir+"/"+sample_name+"_ngs_te_mapper2_redundant.bed"]) mccutils.run_command(["touch", out_dir+"/"+sample_name+"_ngs_te_mapper2_nonredundant.bed"]) mccutils.log("ngs_te_mapper2","ngs_te_mapper2 postprocessing complete") else: mccutils.run_command(["touch", out_dir+"/"+sample_name+"_ngs_te_mapper2_redundant.bed"]) mccutils.run_command(["touch", out_dir+"/"+sample_name+"_ngs_te_mapper2_nonredundant.bed"])
def main(): mccutils.log("retroseq","processing RetroSeq results") retroseq_out = snakemake.input.retroseq_out reference_fasta = snakemake.input.reference_fasta out_dir = snakemake.params.out_dir ref_name = snakemake.params.ref_name sample_name = snakemake.params.sample_name chromosomes = snakemake.params.chromosomes.split(",") status_log = snakemake.params.status_log prev_steps_succeeded = mccutils.check_status_file(status_log) if prev_steps_succeeded: insertions = read_insertions(retroseq_out, sample_name, chromosomes, support_threshold=config.PARAMS["read_support_threshold"], breakpoint_threshold=config.PARAMS["breakpoint_confidence_threshold"]) if len(insertions) >= 1: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="retroseq") insertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="retroseq") output.write_vcf(insertions, reference_fasta, sample_name, "retroseq", out_dir) else: mccutils.run_command(["touch",out_dir+"/"+sample_name+"_retroseq_redundant.bed"]) mccutils.run_command(["touch",out_dir+"/"+sample_name+"_retroseq_nonredundant.bed"]) else: mccutils.run_command(["touch",out_dir+"/"+sample_name+"_retroseq_redundant.bed"]) mccutils.run_command(["touch",out_dir+"/"+sample_name+"_retroseq_nonredundant.bed"]) mccutils.log("retroseq","RetroSeq post processing complete")
def main(): mccutils.log("tebreak","running tebreak post processing") tebreak_out = snakemake.input.tebreak_out ref_fasta = snakemake.input.ref_fasta out_dir = snakemake.params.out_dir ref_name = snakemake.params.ref_name sample_name = snakemake.params.sample_name chromosomes = snakemake.params.chromosomes.split(",") status_log = snakemake.params.status_log prev_steps_succeeded = mccutils.check_status_file(status_log) if prev_steps_succeeded: insertions = read_insertions(tebreak_out, sample_name, chromosomes, config) if len(insertions) > 0: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="tebreak") insertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="tebreak") output.write_vcf(insertions, ref_fasta, sample_name, "tebreak", out_dir) else: mccutils.run_command(["touch", out_dir+"/"+sample_name+"_tebreak_redundant.bed"]) mccutils.run_command(["touch", out_dir+"/"+sample_name+"_tebreak_nonredundant.bed"]) else: mccutils.run_command(["touch", out_dir+"/"+sample_name+"_tebreak_redundant.bed"]) mccutils.run_command(["touch", out_dir+"/"+sample_name+"_tebreak_nonredundant.bed"]) mccutils.log("tebreak","tebreak postprocessing complete")
def main(): mccutils.log("te-locate", "processing TE-Locate results") telocate_raw = snakemake.input.telocate_raw te_gff = snakemake.input.te_gff reference_fasta = snakemake.input.reference_fasta out_dir = snakemake.params.out_dir sample_name = snakemake.params.sample_name chromosomes = snakemake.params.chromosomes.split(",") insertions = read_insertions( telocate_raw, sample_name, chromosomes, rp_threshold=config.READ_PAIR_SUPPORT_THRESHOLD) insertions = filter_by_reference(insertions, te_gff) if len(insertions) > 0: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="telocate") intertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="telocate") output.write_vcf(insertions, reference_fasta, sample_name, "telocate", out_dir) else: mccutils.run_command( ["touch", out_dir + "/" + sample_name + "_telocate_redundant.bed"]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_telocate_nonredundant.bed" ]) mccutils.log("te-locate", "TE-Locate post processing complete")
def main(): mccutils.log("te-locate","processing TE-Locate results") telocate_raw = snakemake.input.telocate_raw te_gff = snakemake.input.te_gff reference_fasta = snakemake.input.reference_fasta out_dir = snakemake.params.out_dir sample_name = snakemake.params.sample_name chromosomes = snakemake.params.chromosomes.split(",") status_log = snakemake.params.status_log prev_steps_succeeded = mccutils.check_status_file(status_log) if prev_steps_succeeded: insertions = read_insertions(telocate_raw, sample_name, chromosomes, rp_threshold=config.PARAMS['read_pair_support_threshold']) insertions = filter_by_reference(insertions, te_gff) if len(insertions) > 0: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="telocate") intertions = output.make_nonredundant_bed(insertions, sample_name, out_dir,method="telocate") output.write_vcf(insertions, reference_fasta, sample_name, "telocate", out_dir) else: mccutils.run_command(["touch", out_dir+"/"+sample_name+"_telocate_redundant.bed"]) mccutils.run_command(["touch", out_dir+"/"+sample_name+"_telocate_nonredundant.bed"]) else: mccutils.run_command(["touch", out_dir+"/"+sample_name+"_telocate_redundant.bed"]) mccutils.run_command(["touch", out_dir+"/"+sample_name+"_telocate_nonredundant.bed"]) mccutils.log("te-locate", "TE-Locate post processing complete")
def main(): mccutils.log("retroseq", "processing RetroSeq results") retroseq_out = snakemake.input.retroseq_out reference_fasta = snakemake.input.reference_fasta out_dir = snakemake.params.out_dir ref_name = snakemake.params.ref_name sample_name = snakemake.params.sample_name chromosomes = snakemake.params.chromosomes.split(",") insertions = read_insertions( retroseq_out, sample_name, chromosomes, support_threshold=config.READ_SUPPORT_THRESHOLD, breakpoint_threshold=config.BREAKPOINT_CONFIDENCE_THRESHOLD) if len(insertions) >= 1: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="retroseq") insertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="retroseq") output.write_vcf(insertions, reference_fasta, sample_name, "retroseq", out_dir) else: mccutils.run_command( ["touch", out_dir + "/" + sample_name + "_retroseq_redundant.bed"]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_retroseq_nonredundant.bed" ]) mccutils.log("retroseq", "RetroSeq post processing complete")
def main(): mccutils.log("jitterbug", "jitterbug postprocessing") jitterbug_out = snakemake.input.jitterbug_out te_taxonomy = snakemake.input.taxonomy reference_fasta = snakemake.input.reference_fasta out_dir = snakemake.params.out_dir log = snakemake.params.log sample_name = snakemake.params.sample_name chromosomes = snakemake.params.chromosomes.split(",") status_log = snakemake.params.status_log out = snakemake.output.out prev_steps_succeeded = mccutils.check_status_file(status_log) if prev_steps_succeeded: insertions = read_insertions( jitterbug_out, te_taxonomy, chromosomes, sample_name, min_fwd_read_support=config.FILTER['MIN_FWD_READ_SUPPORT'], min_rev_read_support=config.FILTER['MIN_REV_READ_SUPPORT'], min_sr_support=config.FILTER['MIN_SPLIT_READ_SUPPORT'], min_zygosity=config.FILTER['MIN_ZYGOSITY']) if len(insertions) >= 1: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="jitterbug") insertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="jitterbug") output.write_vcf(insertions, reference_fasta, sample_name, "jitterbug", out_dir) else: mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_jitterbug_redundant.bed" ]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_jitterbug_nonredundant.bed" ]) else: mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_jitterbug_redundant.bed" ]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_jitterbug_nonredundant.bed" ])
def main(): mccutils.log("popoolationte2", "processing PopoolationTE2 results") te_predictions = snakemake.input.popoolationte2_out te_gff = snakemake.input.te_gff taxonomy = snakemake.input.taxonomy reference_fasta = snakemake.input.reference_fasta out_dir = snakemake.params.out_dir sample_name = snakemake.params.sample_name chromosomes = snakemake.params.chromosomes.split(",") log = snakemake.params.log status_log = snakemake.params.status_log prev_step_succeeded = mccutils.check_status_file(status_log) if prev_step_succeeded: ref_tes = get_ref_tes(te_gff, taxonomy, chromosomes) insertions = read_insertions( te_predictions, ref_tes, chromosomes, sample_name, both_end_support_needed=config.PARAMS["require_both_end_support"], support_threshold=config.PARAMS["frequency_threshold"]) if len(insertions) >= 1: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="popoolationte2") insertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="popoolationte2") output.write_vcf(insertions, reference_fasta, sample_name, "popoolationte2", out_dir) else: mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_popoolationte2_redundant.bed" ]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_popoolationte2_nonredundant.bed" ]) else: mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_popoolationte2_redundant.bed" ]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_popoolationte2_nonredundant.bed" ]) mccutils.log("popoolationte2", "PopoolationTE2 postprocessing complete")
def main(): mccutils.log("teflon", "TEFLoN postprocessing") teflon_raw = snakemake.input.teflon_out ref_te_bed = snakemake.input.ref_bed reference_fasta = snakemake.input.reference_fasta out_dir = snakemake.params.out_dir sample_name = snakemake.params.sample_name chromosomes = snakemake.params.chromosomes.split(",") status_log = snakemake.params.status_log out = snakemake.output.out prev_steps_succeeded = mccutils.check_status_file(status_log) if prev_steps_succeeded: ref_tes = get_ref_tes(ref_te_bed) insertions = read_insertions( teflon_raw, chromosomes, sample_name, ref_tes, min_presence=config.PARAMS['min_presence_reads'], max_absence=config.PARAMS['max_absence_reads'], min_presence_fraction=config.PARAMS['min_presence_fraction'], require_tsd=config.PARAMS['require_tsd'], require_both_breakpoints=config.PARAMS['require_both_breakpoints']) if len(insertions) >= 1: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="teflon") insertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="teflon") output.write_vcf(insertions, reference_fasta, sample_name, "teflon", out_dir) else: mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_teflon_redundant.bed" ]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_teflon_nonredundant.bed" ]) else: mccutils.run_command( ["touch", out_dir + "/" + sample_name + "_teflon_redundant.bed"]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_teflon_nonredundant.bed" ])
def main(): mccutils.log("popoolationte", "processing PopoolationTE results") popoolationte_out = snakemake.input.popoolationte_out genome_fasta = snakemake.input.ref out_dir = snakemake.params.out_dir sample_name = snakemake.params.sample_name log = snakemake.params.log chromosomes = snakemake.params.chromosomes.split(",") status_log = snakemake.params.status_log succeeded = mccutils.check_status_file(status_log) if succeeded: insertions = read_insertions( popoolationte_out, sample_name, chromosomes, require_both_end_support=config.PARAMS["require_both_end_support"], percent_read_support_threshold=config. PARAMS["percent_read_support_threshold"]) if len(insertions) >= 1: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="popoolationte") insertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="popoolationte") output.write_vcf(insertions, genome_fasta, sample_name, "popoolationte", out_dir) else: mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_popoolationte_redundant.bed" ]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_popoolationte_nonredundant.bed" ]) else: mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_popoolationte_redundant.bed" ]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_popoolationte_nonredundant.bed" ]) mccutils.log("popoolationte", "PopoolationTE postprocessing complete")
def main(): mccutils.log("temp", "running TEMP post processing") insert_summary = snakemake.input.insert_summary absence_summary = snakemake.input.absence_summary te_gff = snakemake.input.te_gff reference_fasta = snakemake.input.reference_fasta log = snakemake.params.log sample_name = snakemake.params.sample_name chromosomes = snakemake.params.chromosomes.split(",") out_dir = snakemake.params.out_dir status_log = snakemake.params.status_log prev_steps_succeeded = mccutils.check_status_file(status_log) if prev_steps_succeeded: insertions = read_insertion_summary(insert_summary, sample_name) absence_bed = make_absence_bed(absence_summary, sample_name, out_dir) non_absent_ref_insertions = get_non_absent_ref_tes( te_gff, absence_bed, sample_name, out_dir, log) insertions += non_absent_ref_insertions insertions = filter_insertions( insertions, chromosomes, acceptable_classes=config. PARAMS["acceptable_insertion_support_classes"], frequency_theshold=config.PARAMS["frequency_threshold"]) if len(insertions) > 0: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="temp") insertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="temp") output.write_vcf(insertions, reference_fasta, sample_name, "temp", out_dir) else: mccutils.run_command( ["touch", out_dir + "/" + sample_name + "_temp_redundant.bed"]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_temp_nonredundant.bed" ]) else: mccutils.run_command( ["touch", out_dir + "/" + sample_name + "_temp_redundant.bed"]) mccutils.run_command( ["touch", out_dir + "/" + sample_name + "_temp_nonredundant.bed"]) mccutils.log("temp", "TEMP postprocessing complete")
def main(): mccutils.log("temp2", "running TEMP2 post processing") insert_bed = snakemake.input.insert_bed absence_summary = snakemake.input.absence_summary te_gff = snakemake.input.te_gff reference_fasta = snakemake.input.reference_fasta log = snakemake.params.log sample_name = snakemake.params.sample_name chromosomes = snakemake.params.chromosomes.split(",") out_dir = snakemake.params.out_dir status_log = snakemake.params.status_log prev_steps_succeeded = mccutils.check_status_file(status_log) if prev_steps_succeeded: insertions = read_insertions(insert_bed, sample_name, chromosomes, config) absence_bed = make_absence_bed(absence_summary, sample_name, out_dir) non_absent_ref_insertions = get_non_absent_ref_tes( te_gff, absence_bed, sample_name, chromosomes, out_dir, log) insertions += non_absent_ref_insertions if len(insertions) > 0: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="temp2") insertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="temp2") output.write_vcf(insertions, reference_fasta, sample_name, "temp2", out_dir) else: mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_temp2_redundant.bed" ]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_temp2_nonredundant.bed" ]) else: mccutils.run_command( ["touch", out_dir + "/" + sample_name + "_temp2_redundant.bed"]) mccutils.run_command( ["touch", out_dir + "/" + sample_name + "_temp2_nonredundant.bed"]) mccutils.log("temp2", "TEMP2 postprocessing complete")
def main(): raw_bed = snakemake.input.raw_bed reference_fasta = snakemake.input.reference_fasta threads = snakemake.threads log = snakemake.params.log sample_name = snakemake.params.sample_name out_dir = snakemake.params.out_dir chromosomes = snakemake.params.chromosomes.split(",") out_bed = snakemake.output[0] mccutils.log("ngs_te_mapper", "processing ngs_te_mapper results", log=log) insertions = read_insertions(raw_bed, chromosomes, sample_name, out_dir, min_read_cutoff=config.MIN_READ_SUPPORT) if len(insertions) > 0: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="ngs_te_mapper") intertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="ngs_te_mapper") output.write_vcf(insertions, reference_fasta, sample_name, "ngs_te_mapper", out_dir) else: mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_ngs_te_mapper_redundant.bed" ]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_ngs_te_mapper_nonredundant.bed" ]) mccutils.log("ngs_te_mapper", "ngs_te_mapper postprocessing complete")
def main(): mccutils.log("popoolationte2", "processing PopoolationTE2 results") te_predictions = snakemake.input.popoolationte2_out te_gff = snakemake.input.te_gff taxonomy = snakemake.input.taxonomy reference_fasta = snakemake.input.reference_fasta out_dir = snakemake.params.out_dir sample_name = snakemake.params.sample_name chromosomes = snakemake.params.chromosomes.split(",") log = snakemake.params.log ref_tes = get_ref_tes(te_gff, taxonomy, chromosomes) insertions = read_insertions( te_predictions, ref_tes, chromosomes, sample_name, both_end_support_needed=config.REQUIRE_BOTH_END_SUPPORT, support_threshold=config.FREQUENCY_THRESHOLD) if len(insertions) >= 1: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="popoolationte2") insertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="popoolationte2") output.write_vcf(insertions, reference_fasta, sample_name, "popoolationte2", out_dir) else: mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_popoolationte2_redundant.bed" ]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_popoolationte2_nonredundant.bed" ]) mccutils.log("popoolationte2", "PopoolationTE2 postprocessing complete")
def main(): relocate_gff = snakemake.input.relocate_gff te_gff = snakemake.input.te_gff reference_fasta = snakemake.input.reference_fasta out_dir = snakemake.params.out_dir log = snakemake.params.log sample_name = snakemake.params.sample_name chromosomes = snakemake.params.chromosomes.split(",") mccutils.log("relocate", "processing RelocaTE results") insertions = get_insertions( relocate_gff, sample_name, chromosomes, ref_l_threshold=config.REF_LEFT_THRESHOLD, ref_r_threshold=config.REF_RIGHT_THRESHOLD, nonref_l_threshold=config.NONREF_LEFT_THRESHOLD, nonref_r_threshold=config.NONREF_RIGHT_THRESHOLD) insertions = set_ref_orientations(insertions, te_gff) if len(insertions) >= 1: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="relocate") insertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="relocate") output.write_vcf(insertions, reference_fasta, sample_name, "relocate", out_dir) else: mccutils.run_command( ["touch", out_dir + "/" + sample_name + "_relocate_redundant.bed"]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_relocate_nonredundant.bed" ]) mccutils.log("relocate", "RelocaTE postprocessing complete")
def main(): relocate_gff = snakemake.input.relocate_gff te_gff = snakemake.input.te_gff reference_fasta = snakemake.input.reference_fasta out_dir = snakemake.params.out_dir log = snakemake.params.log sample_name = snakemake.params.sample_name chromosomes = snakemake.params.chromosomes.split(",") status_log = snakemake.params.status_log mccutils.log("relocate","processing RelocaTE results") prev_step_succeeded = mccutils.check_status_file(status_log) if prev_step_succeeded: insertions = get_insertions( relocate_gff, sample_name, chromosomes, ref_l_threshold=config.PARAMS["ref_left_threshold"], ref_r_threshold=config.PARAMS["ref_right_threshold"], nonref_l_threshold=config.PARAMS["nonref_left_threshold"], nonref_r_threshold=config.PARAMS["nonref_right_threshold"] ) insertions = set_ref_orientations(insertions, te_gff) if len(insertions) >= 1: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="relocate") insertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="relocate") output.write_vcf(insertions, reference_fasta, sample_name, "relocate", out_dir) else: mccutils.run_command(["touch",out_dir+"/"+sample_name+"_relocate_redundant.bed"]) mccutils.run_command(["touch",out_dir+"/"+sample_name+"_relocate_nonredundant.bed"]) else: mccutils.run_command(["touch",out_dir+"/"+sample_name+"_relocate_redundant.bed"]) mccutils.run_command(["touch",out_dir+"/"+sample_name+"_relocate_nonredundant.bed"]) mccutils.log("relocate","RelocaTE postprocessing complete")
def main(): mccutils.log("temp", "running TEMP post processing") insert_summary = snakemake.input.insert_summary absence_summary = snakemake.input.absence_summary te_gff = snakemake.input.te_gff reference_fasta = snakemake.input.reference_fasta log = snakemake.params.log sample_name = snakemake.params.sample_name chromosomes = snakemake.params.chromosomes.split(",") out_dir = snakemake.params.out_dir insertions = read_insertion_summary(insert_summary, sample_name) absence_bed = make_absence_bed(absence_summary, sample_name, out_dir) non_absent_ref_insertions = get_non_absent_ref_tes(te_gff, absence_bed, sample_name, out_dir, log) insertions += non_absent_ref_insertions insertions = filter_insertions( insertions, chromosomes, acceptable_classes=config.ACCEPTABLE_INSERTION_SUPPORT_CLASSES, frequency_theshold=config.FREQUENCY_THRESHOLD) if len(insertions) > 0: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="temp") insertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="temp") output.write_vcf(insertions, reference_fasta, sample_name, "temp", out_dir) else: mccutils.run_command( ["touch", out_dir + "/" + sample_name + "_temp_redundant.bed"]) mccutils.run_command( ["touch", out_dir + "/" + sample_name + "_temp_nonredundant.bed"]) mccutils.log("temp", "TEMP postprocessing complete")
def main(): mccutils.log("popoolationte", "processing PopoolationTE results") popoolationte_out = snakemake.input.popoolationte_out genome_fasta = snakemake.input.ref out_dir = snakemake.params.out_dir sample_name = snakemake.params.sample_name log = snakemake.params.log chromosomes = snakemake.params.chromosomes.split(",") insertions = read_insertions( popoolationte_out, sample_name, chromosomes, require_both_end_support=config.REQUIRE_BOTH_END_SUPPORT, percent_read_support_threshold=config.PERCENT_READ_SUPPORT_THRESHOLD) if len(insertions) >= 1: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="popoolationte") insertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="popoolationte") output.write_vcf(insertions, genome_fasta, sample_name, "popoolationte", out_dir) else: mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_popoolationte_redundant.bed" ]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_popoolationte_nonredundant.bed" ]) mccutils.log("popoolationte", "PopoolationTE postprocessing complete")
def main(): insertions_bed = snakemake.input.insertions_bed deletions_bed = snakemake.input.deletions_bed insertions_support = snakemake.input.insertions_support deletions_support = snakemake.input.deletions_support te_gff = snakemake.input.te_gff te_taxonomy = snakemake.input.te_taxonomy reference_fasta = snakemake.input.reference_fasta chromosomes = snakemake.params.chromosomes.split(",") status_log = snakemake.params.status_log sample_name = snakemake.params.sample_name out_dir = snakemake.params.out_dir prev_steps_succeeded = mccutils.check_status_file(status_log) mccutils.log("tepid", "running TEPID post processing") if prev_steps_succeeded: te_to_family = get_te_family_map(te_taxonomy) te_pos_to_family = get_te_pos_family_map(te_gff, te_to_family) insertions = read_insertions(insertions_bed, te_to_family, sample_name, te_pos_to_family, chromosomes, reference=False) insertions = add_support(insertions, insertions_support, threshold=config.READ_SUPPORT_THRESHOLD) deletions = read_insertions(deletions_bed, te_to_family, sample_name, te_pos_to_family, chromosomes, reference=True) deletions = add_support(deletions, deletions_support, threshold=config.READ_SUPPORT_THRESHOLD) non_abs_ref_insertions = get_non_absent_ref_tes( deletions, te_gff, te_to_family, sample_name) insertions += non_abs_ref_insertions if len(insertions) > 0: insertions = output.make_redundant_bed(insertions, sample_name, out_dir, method="tepid") insertions = output.make_nonredundant_bed(insertions, sample_name, out_dir, method="tepid") output.write_vcf(insertions, reference_fasta, sample_name, "tepid", out_dir) else: mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_tepid_redundant.bed" ]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_tepid_nonredundant.bed" ]) else: mccutils.run_command( ["touch", out_dir + "/" + sample_name + "_tepid_redundant.bed"]) mccutils.run_command( ["touch", out_dir + "/" + sample_name + "_tepid_nonredundant.bed"]) mccutils.log("tepid", "TEPID post processing complete")
def main(): nonref_gff = snakemake.input.nonref_gff ref_gff = snakemake.input.ref_gff rm_out = snakemake.input.rm_out reference_fasta = snakemake.input.reference_fasta log = snakemake.params.log out_dir = snakemake.params.out_dir sample_name = snakemake.params.sample_name chromosomes = snakemake.params.chromosomes.split(",") status_log = snakemake.params.status_log prev_steps_succeeded = mccutils.check_status_file(status_log) mccutils.log("relocate2", "processing RelocaTE2 results") if prev_steps_succeeded: ref_insertions = get_insertions( ref_gff, sample_name, chromosomes, insert_type="ref", l_support_threshold=config.PARAMS["ref_left_support_threshold"], r_support_threshold=config.PARAMS["ref_right_support_threshold"], l_junction_threshold=config.PARAMS["ref_left_junction_threshold"], r_junction_threshold=config.PARAMS["ref_right_junction_threshold"]) nonref_insertions = get_insertions( nonref_gff, sample_name, chromosomes, insert_type="nonref", l_support_threshold=config.PARAMS["nonref_left_support_threshold"], r_support_threshold=config. PARAMS["nonref_right_support_threshold"], l_junction_threshold=config. PARAMS["nonref_left_junction_threshold"], r_junction_threshold=config. PARAMS["nonref_right_junction_threshold"]) ref_insertions = fix_ref_te_names(ref_insertions, rm_out, sample_name) all_insertions = ref_insertions + nonref_insertions if len(all_insertions) >= 1: all_insertions = output.make_redundant_bed(all_insertions, sample_name, out_dir, method="relocate2") insertions = output.make_nonredundant_bed(all_insertions, sample_name, out_dir, method="relocate2") output.write_vcf(insertions, reference_fasta, sample_name, "relocate2", out_dir) else: mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_relocate2_redundant.bed" ]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_relocate2_nonredundant.bed" ]) else: mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_relocate2_redundant.bed" ]) mccutils.run_command([ "touch", out_dir + "/" + sample_name + "_relocate2_nonredundant.bed" ]) mccutils.log("relocate2", "RelocaTE2 postprocessing complete")