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 00000000..d78ae010 Binary files /dev/null and b/src/bcftools/bcftools_sort/test_data/example.bcf differ