From e37ebc5c575696ed7a77f1dcf4521908576ae8b2 Mon Sep 17 00:00:00 2001 From: Lydia Buntrock Date: Wed, 28 Jul 2021 13:50:29 +0200 Subject: [PATCH] [FEATURE] Add Tandem Dup to the output vcf Signed-off-by: Lydia Buntrock --- src/variant_detection/variant_output.cpp | 18 ++++++++++++++++++ test/data/datasources.cmake | 2 +- test/data/mini_example/output_res.txt | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/variant_detection/variant_output.cpp b/src/variant_detection/variant_output.cpp index 8c2f6569..178a36e7 100644 --- a/src/variant_detection/variant_output.cpp +++ b/src/variant_detection/variant_output.cpp @@ -51,6 +51,24 @@ void find_and_output_variants(std::map & references_length tmp.add_info("END", std::to_string(mate2_pos)); tmp.print(out_stream); } + //Tandem Duplication + else if (distance >= args.min_var_length && + distance <= args.max_var_length && + clusters[i].get_common_tandem_dup_count() > 0 && + insert_size >= args.min_var_length) + { + variant_record tmp{}; + tmp.set_chrom(mate1.seq_name); + tmp.set_qual(cluster_size); + tmp.set_alt(""); + tmp.add_info("SVTYPE", "DUP"); + // Increment position by 1 because VCF is 1-based + tmp.set_pos(mate1_pos + 1); + tmp.add_info("SVLEN", std::to_string(distance)); + // Increment end by 1 because VCF is 1-based + tmp.add_info("END", std::to_string(mate2_pos + 1)); + tmp.print(out_stream); + } //Insertion else if (distance == 1 && insert_size >= args.min_var_length) diff --git a/test/data/datasources.cmake b/test/data/datasources.cmake index 204f8ea3..32e1b5ff 100644 --- a/test/data/datasources.cmake +++ b/test/data/datasources.cmake @@ -29,4 +29,4 @@ declare_datasource (FILE output_err.txt # copies file to /data/output_res.txt declare_datasource (FILE output_res.txt URL ${CMAKE_SOURCE_DIR}/test/data/mini_example/output_res.txt - URL_HASH SHA256=7f52103b216002598f8a50bd3f27f430798de7ffc03ae26c92bf3281ed338164) + URL_HASH SHA256=81f861156dfdff027df053e996a1dfaeccf15131ce81c5ccb350148fc912a8c7) diff --git a/test/data/mini_example/output_res.txt b/test/data/mini_example/output_res.txt index f9771cb0..5844eb14 100644 --- a/test/data/mini_example/output_res.txt +++ b/test/data/mini_example/output_res.txt @@ -12,6 +12,7 @@ chr1 57 . N 9 PASS END=70;SVLEN=-13;SVTYPE=DEL GT ./. chr1 97 . N 1 PASS END=125;SVLEN=-28;SVTYPE=DEL GT ./. chr1 125 . N 3 PASS END=125;SVLEN=15;SVTYPE=INS GT ./. +chr1 180 . N 1 PASS END=188;SVLEN=8;SVTYPE=DUP GT ./. chr1 266 . N 4 PASS END=286;SVLEN=-20;SVTYPE=DEL GT ./. chr1 282 . N 1 PASS END=299;SVLEN=-17;SVTYPE=DEL GT ./. chr1 336 . N 4 PASS END=350;SVLEN=-14;SVTYPE=DEL GT ./.