Mercurial > repos > youngkim > ezbamqc
diff ezBAMQC/src/htslib/test/test_view.pl @ 0:dfa3745e5fd8
Uploaded
author | youngkim |
---|---|
date | Thu, 24 Mar 2016 17:12:52 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ezBAMQC/src/htslib/test/test_view.pl Thu Mar 24 17:12:52 2016 -0400 @@ -0,0 +1,71 @@ +#! /usr/bin/env perl +# +# Copyright (C) 2013 Genome Research Ltd. +# +# Author: James Bonfield <jkb@sanger.ac.uk> +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +use strict; +use warnings; + +my $err_count = 0; +my $suc_count = 0; + +sub test { + my ($cmd) = @_; + print " $cmd\n"; + if (system("$cmd || exit 1") != 0) { + print "FAIL $!\n"; + $err_count++; + } else { + $suc_count++; + } +} + +foreach my $sam (glob("*#*.sam")) { + my ($base, $ref) = ($sam =~ /((.*)#.*)\.sam/); + $ref .= ".fa"; + + my $bam = "$base.tmp.bam"; + my $cram = "$base.tmp.cram"; + + print "\n=== Testing $sam, ref $ref ===\n"; + + # SAM -> BAM -> SAM + test "./test_view -S -b $sam > $bam"; + test "./test_view $bam > $bam.sam_"; + test "./compare_sam.pl $sam $bam.sam_"; + + # SAM -> CRAM -> SAM + test "./test_view -t $ref -S -C $sam > $cram"; + test "./test_view -D $cram > $cram.sam_"; + test "./compare_sam.pl -nomd $sam $cram.sam_"; + + # BAM -> CRAM -> BAM -> SAM + $cram = "$bam.cram"; + test "./test_view -t $ref -C $bam > $cram"; + test "./test_view -b -D $cram > $cram.bam"; + test "./test_view $cram.bam > $cram.bam.sam_"; + test "./compare_sam.pl -nomd $sam $cram.bam.sam_"; +} + +print "\nSuccesses $suc_count\n"; +print "\nFailures $err_count\n"; + +exit ($err_count > 0);