From 9264d9470c26d34b8d5ce0428e94e00ae0db7388 Mon Sep 17 00:00:00 2001 From: tgaspe Date: Mon, 26 Aug 2024 15:08:53 +0200 Subject: [PATCH] Adding test for bcf file --- src/bcftools/bcftools_sort/config.vsh.yaml | 2 + src/bcftools/bcftools_sort/test.sh | 61 +++++++++++++++++- .../bcftools_sort/test_data/example.bcf | Bin 0 -> 1183 bytes 3 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 src/bcftools/bcftools_sort/test_data/example.bcf diff --git a/src/bcftools/bcftools_sort/config.vsh.yaml b/src/bcftools/bcftools_sort/config.vsh.yaml index 9f52ead8..dce78704 100644 --- a/src/bcftools/bcftools_sort/config.vsh.yaml +++ b/src/bcftools/bcftools_sort/config.vsh.yaml @@ -38,6 +38,7 @@ argument_groups: - name: Options arguments: - name: --output_type + alternatives: -O type: string choices: [b, u, z, v] description: | @@ -55,6 +56,7 @@ resources: test_resources: - type: bash_script path: test.sh + - path: test_data engines: - type: docker diff --git a/src/bcftools/bcftools_sort/test.sh b/src/bcftools/bcftools_sort/test.sh index f74402c6..f406b8e2 100644 --- a/src/bcftools/bcftools_sort/test.sh +++ b/src/bcftools/bcftools_sort/test.sh @@ -6,6 +6,8 @@ # Exit on error set -eo pipefail +test_data="$meta_resources_dir/test_data" + ############################################# # helper functions assert_file_exists() { @@ -104,6 +106,45 @@ cat < "$TMPDIR/expected_output.vcf" 20 1235237 . T . . . . GT 0/0 0|0 ./. EOF +cat < "$TMPDIR/expected_bcf.vcf" +##fileformat=VCFv4.0 +##FILTER= +##fileDate=20090805 +##source=myImputationProgramV3.1 +##reference=1000GenomesPilot-NCBI36 +##contig= +##contig= +##phasing=partial +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##FILTER= +##FILTER= +##FORMAT= +##FORMAT= +##FORMAT= +##FORMAT= +##ALT= +##ALT= +##bcftools_viewVersion=1.16+htslib-1.16 +##bcftools_viewCommand=view -O b -o example.bcf example.vcf.gz; Date=Mon Aug 26 13:00:22 2024 +#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA00001 NA00002 NA00003 +19 111 . A C 9.6 . . GT:HQ 0|0:10,10 0|0:10,10 0/1:3,3 +19 112 . A G 10 . . GT:HQ 0|0:10,10 0|0:10,10 0/1:3,3 +20 14370 rs6054257 G A 29 PASS NS=3;DP=14;AF=0.5;DB;H2 GT:GQ:DP:HQ 0|0:48:1:51,51 1|0:48:8:51,51 1/1:43:5:.,. +20 17330 . T A 3 q10 NS=3;DP=11;AF=0.017 GT:GQ:DP:HQ 0|0:49:3:58,50 0|1:3:5:65,3 0/0:41:3:.,. +20 1110696 rs6040355 A G,T 67 PASS NS=2;DP=10;AF=0.333,0.667;AA=T;DB GT:GQ:DP:HQ 1|2:21:6:23,27 2|1:2:0:18,2 2/2:35:4:.,. +20 1230237 . T . 47 PASS NS=3;DP=13;AA=T GT:GQ:DP:HQ 0|0:54:.:56,60 0|0:48:4:51,51 0/0:61:2:.,. +20 1234567 microsat1 G GA,GAC 50 PASS NS=3;DP=9;AA=G;AN=6;AC=3,1 GT:GQ:DP 0/1:.:4 0/2:17:2 1/1:40:3 +20 1235237 . T . . . . GT 0/0 0|0 ./. +EOF + + # Test 1: Default Use mkdir "$TMPDIR/test1" && pushd "$TMPDIR/test1" > /dev/null @@ -111,7 +152,8 @@ echo "> Run bcftools_sort on VCF file" "$meta_executable" \ --input "../example.vcf" \ --output "output.vcf" \ - --output_type "v" + --output_type "v" \ + &> /dev/null # checks assert_file_exists "output.vcf" @@ -121,10 +163,23 @@ echo "- test1 succeeded -" popd > /dev/null -# Test 2: Output type +# Test 2: BCF file input +mkdir "$TMPDIR/test2" && pushd "$TMPDIR/test2" > /dev/null +echo "> Run bcftools_sort on BCF file" +"$meta_executable" \ + --input "${test_data}/example.bcf" \ + --output "output.vcf" \ + --output_type "v" \ + &> /dev/null -# Test 3: Output type +# checks +assert_file_exists "output.vcf" +assert_file_not_empty "output.vcf" +assert_identical_content "output.vcf" "../expected_bcf.vcf" +echo "- test2 succeeded -" + +popd > /dev/null echo "---- All tests succeeded! ----" exit 0 diff --git a/src/bcftools/bcftools_sort/test_data/example.bcf b/src/bcftools/bcftools_sort/test_data/example.bcf new file mode 100644 index 0000000000000000000000000000000000000000..d78ae010b4f1b6924f72b296a50e1cab5ca5f0ca GIT binary patch literal 1183 zcmV;Q1Yr9giwFb&00000{{{d;LjnMT1dWu>Z{tK1$6Y%~*IgFjN>zkFt7*dumQACv z)1*JByX!bj8YxZFCR@0nNis<+`PbT$F697`koLlz6^H{jByRi%T=*A|_zyU9ZM-0+9}|*T&~t=c8@RA!$wtY zYn@KMO8vfPxXf^DbxSi%1YV4KK5~ig)4^80QT;k$Y9{nA@!&YHZsPzPHo4ce%mk|w%yVzjba&W`i{+vQ7B2? z&zsa9v9Vg(E6clOxqK6U!A!xon#qBgJ0`wik5rd<%pfMbX|!r*p_YEuo)duFIj}h1UW<0A(m@WAAM@DF@n^|)=ii>RBPP@+I1K)kv&Hf)1(2~uu(sl z56}o|!@%ERnL`i>)v}QLBo)1jem?EE86gl1i zlo219hR11o=QxOvo@80G-U%6>%LO%P9%|0SLf z_msHG0y6^b9VL(G3mGRJ&nLt**fr`=(|L(x9J%c;x%s6fws3e2*RSD9sB+8{ksW2{T9FX!A^|rKlpP!ysvQ6uY;=qm(^@H z^x}DVQep97Y`nQQ6Ze;vj)J6Kdwv<0c9ha?ww~1_PFj%!DJ8uvr8mItskF*T_aY4` zA(fKek}!S(>nr!tpr;69IxQ@O_*I{Uc=k+)Lx3J2i!u2=kiXNvJ&f{7^E@zR;W4ZT zX#toAiY82_)dl9yf4>tmUscjToXg(9#ZoCKZnhf==K-=Nr62wC)h|ci{PyuvDFX|u zf%?>HCY{MZqzyg?Mj0-sX7;^xemZ@;5b4L?*W*Zs6(Oo-pnhJJ2O%-ukU)4DtMGc7 z;sLjJ7!;!d&KoiA)gLq5$xOKL+A{i{;}a%l>mSy&-MXgF@gm^skVQrkHieZSPKwWj xMW0F^!Fq}p{sk88Nlg_A001A02m}BC000301^_}s0stET0{{R300000005SPILiP4 literal 0 HcmV?d00001