<s> '''<STR_LIT>''' <EOL> import os <EOL> import StringIO <EOL> import unittest <EOL> from ngsutils . bam . t import MockBam <EOL> from ngsutils . bed import BedFile <EOL> import ngsutils . bam . basecall <EOL> class BaseCallTest ( unittest . TestCase ) : <EOL> def testBaseCall ( self ) : <EOL> bam = MockBam ( [ '<STR_LIT>' ] ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:0> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' , tags = [ ( '<STR_LIT>' , <NUM_LIT:2> ) , ( '<STR_LIT>' , <NUM_LIT:1> ) ] ) <EOL> out = StringIO . StringIO ( '<STR_LIT>' ) <EOL> ngsutils . bam . basecall . bam_basecall ( bam , os . path . join ( os . path . dirname ( __file__ ) , '<STR_LIT>' ) , out = out ) <EOL> valid = '''<STR_LIT>''' . replace ( '<STR_LIT:|>' , '<STR_LIT:\t>' ) <EOL> self . assertEqual ( valid , out . getvalue ( ) ) <EOL> def testBaseCallInDel ( self ) : <EOL> bam = MockBam ( [ '<STR_LIT>' ] ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:0> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' ) <EOL> out = StringIO . StringIO ( '<STR_LIT>' ) <EOL> ngsutils . bam . basecall . bam_basecall ( bam , os . path . join ( os . path . dirname ( __file__ ) , '<STR_LIT>' ) , out = out ) <EOL> valid = '''<STR_LIT>''' . replace ( '<STR_LIT:|>' , '<STR_LIT:\t>' ) <EOL> self . assertEqual ( valid , out . getvalue ( ) ) <EOL> def testBaseCallMinQual ( self ) : <EOL> bam = MockBam ( [ '<STR_LIT>' ] ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:0> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' , tags = [ ( '<STR_LIT>' , <NUM_LIT:2> ) , ( '<STR_LIT>' , <NUM_LIT:1> ) ] ) <EOL> out = StringIO . StringIO ( '<STR_LIT>' ) <EOL> ngsutils . bam . basecall . bam_basecall ( bam , os . path . join ( os . path . dirname ( __file__ ) , '<STR_LIT>' ) , min_qual = <NUM_LIT:10> , out = out ) <EOL> valid = '''<STR_LIT>''' . replace ( '<STR_LIT:|>' , '<STR_LIT:\t>' ) <EOL> self . assertEqual ( valid , out . getvalue ( ) ) <EOL> def testBaseCallStrand ( self ) : <EOL> bam = MockBam ( [ '<STR_LIT>' ] ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:0> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' , is_reverse = True ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:0> , cigar = '<STR_LIT>' ) <EOL> out = StringIO . StringIO ( '<STR_LIT>' ) <EOL> ngsutils . bam . basecall . bam_basecall ( bam , os . path . join ( os . path . dirname ( __file__ ) , '<STR_LIT>' ) , showstrand = True , out = out ) <EOL> valid = '''<STR_LIT>''' . replace ( '<STR_LIT:|>' , '<STR_LIT:\t>' ) <EOL> self . assertEqual ( valid , out . getvalue ( ) ) <EOL> def testBaseCallRegion ( self ) : <EOL> bam = MockBam ( [ '<STR_LIT>' ] ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:0> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' , is_reverse = True ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:0> , cigar = '<STR_LIT>' ) <EOL> bed = BedFile ( fileobj = StringIO . StringIO ( '''<STR_LIT>''' . replace ( '<STR_LIT:|>' , '<STR_LIT:\t>' ) ) ) <EOL> out = StringIO . StringIO ( '<STR_LIT>' ) <EOL> ngsutils . bam . basecall . bam_basecall ( bam , os . path . join ( os . path . dirname ( __file__ ) , '<STR_LIT>' ) , showstrand = True , regions = bed , out = out ) <EOL> valid = '''<STR_LIT>''' . replace ( '<STR_LIT:|>' , '<STR_LIT:\t>' ) <EOL> self . assertEqual ( valid , out . getvalue ( ) ) <EOL> def testBaseCallRegionStrand ( self ) : <EOL> bam = MockBam ( [ '<STR_LIT>' ] ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:0> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' , is_reverse = True ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:0> , cigar = '<STR_LIT>' ) <EOL> bed = BedFile ( fileobj = StringIO . StringIO ( '''<STR_LIT>''' . replace ( '<STR_LIT:|>' , '<STR_LIT:\t>' ) ) ) <EOL> out = StringIO . StringIO ( '<STR_LIT>' ) <EOL> ngsutils . bam . basecall . bam_basecall ( bam , os . path . join ( os . path . dirname ( __file__ ) , '<STR_LIT>' ) , showstrand = True , regions = bed , out = out ) <EOL> valid = '''<STR_LIT>''' . replace ( '<STR_LIT:|>' , '<STR_LIT:\t>' ) <EOL> self . assertEqual ( valid , out . getvalue ( ) ) <EOL> def testBaseCallVariants ( self ) : <EOL> bam = MockBam ( [ '<STR_LIT>' ] ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:0> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' ) <EOL> out = StringIO . StringIO ( '<STR_LIT>' ) <EOL> ngsutils . bam . basecall . bam_basecall ( bam , os . path . join ( os . path . dirname ( __file__ ) , '<STR_LIT>' ) , variants = True , out = out ) <EOL> valid = '''<STR_LIT>''' . replace ( '<STR_LIT:|>' , '<STR_LIT:\t>' ) <EOL> self . assertEqual ( valid , out . getvalue ( ) ) <EOL> def testBaseCallHetTest ( self ) : <EOL> bam = MockBam ( [ '<STR_LIT>' ] ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:0> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' ) <EOL> out = StringIO . StringIO ( '<STR_LIT>' ) <EOL> ngsutils . bam . basecall . bam_basecall ( bam , os . path . join ( os . path . dirname ( __file__ ) , '<STR_LIT>' ) , variants = True , hettest = True , out = out ) <EOL> valid = '''<STR_LIT>''' . replace ( '<STR_LIT:|>' , '<STR_LIT:\t>' ) <EOL> self . assertEqual ( valid , out . getvalue ( ) ) <EOL> def testBaseCallMinCount ( self ) : <EOL> bam = MockBam ( [ '<STR_LIT>' ] ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:0> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' ) <EOL> bam . add_read ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:0> , <NUM_LIT:4> , cigar = '<STR_LIT>' , tags = [ ( '<STR_LIT>' , <NUM_LIT:2> ) , ( '<STR_LIT>' , <NUM_LIT:1> ) ] ) <EOL> out = StringIO . StringIO ( '<STR_LIT>' ) <EOL> ngsutils . bam . basecall . bam_basecall ( bam , os . path . join ( os . path . dirname ( __file__ ) , '<STR_LIT>' ) , min_count = <NUM_LIT:2> , out = out ) <EOL> valid = '''<STR_LIT>''' . replace ( '<STR_LIT:|>' , '<STR_LIT:\t>' ) <EOL> self . assertEqual ( valid , out . getvalue ( ) ) <EOL> def testHeterzygosity ( self ) : <EOL> self . assertEqual ( <NUM_LIT:0.0> , ngsutils . bam . basecall . _calculate_heterozygosity ( <NUM_LIT:10> , <NUM_LIT:5> , <NUM_LIT:5> , <NUM_LIT:0> ) ) <EOL> self . assertEqual ( <NUM_LIT:0.5> , ngsutils . bam . basecall . _calculate_heterozygosity ( <NUM_LIT:5> , <NUM_LIT:5> , <NUM_LIT:0> , <NUM_LIT:0> ) ) <EOL> self . assertEqual ( <NUM_LIT:0.1> , ngsutils . bam . basecall . _calculate_heterozygosity ( <NUM_LIT:9> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> ) ) <EOL> if __name__ == '<STR_LIT:__main__>' : <EOL> unittest . main ( ) </s>
