def testIndelOrSvMatch(self): # variant types don't match pred_var = Variant(10, 'A', ['AAA'], VARIANT_TYPE.INDEL_INS, GENOTYPE_TYPE.HOM_VAR) true_var = Variant(10, 'ACGT', ['ATGC'], VARIANT_TYPE.INDEL_OTH, GENOTYPE_TYPE.HOM_VAR) self.assertFalse(indel_or_sv_match(pred_var, true_var, EPS_BP, EPS_LEN)) # pred var too far away from true var pred_var = Variant(40, 'A', ['AAA'], VARIANT_TYPE.INDEL_INS, GENOTYPE_TYPE.HOM_VAR) true_var = Variant(20, 'A', ['AAA'], VARIANT_TYPE.INDEL_INS, GENOTYPE_TYPE.HOM_VAR) self.assertFalse(indel_or_sv_match(pred_var, true_var, EPS_BP, EPS_LEN)) # pred pos off from true pos but within tolerance pred_var = Variant(18, 'A', ['AAA'], VARIANT_TYPE.INDEL_INS, GENOTYPE_TYPE.HOM_VAR) true_var = Variant(20, 'A', ['AAA'], VARIANT_TYPE.INDEL_INS, GENOTYPE_TYPE.HOM_VAR) self.assertTrue(indel_or_sv_match(pred_var, true_var, EPS_BP, EPS_LEN)) # pred gains too different from true gains pred_var = Variant(20, 'A', ['AAAAAAAAAAAAAAA'], VARIANT_TYPE.INDEL_INS, GENOTYPE_TYPE.HOM_VAR) true_var = Variant(20, 'A', ['AAA'], VARIANT_TYPE.INDEL_INS, GENOTYPE_TYPE.HOM_VAR) self.assertFalse(indel_or_sv_match(pred_var, true_var, EPS_BP, EPS_LEN)) # pred gains off from true gains but within tolerance pred_var = Variant(20, 'A', ['AAAAA'], VARIANT_TYPE.INDEL_INS, GENOTYPE_TYPE.HOM_VAR) true_var = Variant(20, 'A', ['AAA'], VARIANT_TYPE.INDEL_INS, GENOTYPE_TYPE.HOM_VAR) self.assertTrue(indel_or_sv_match(pred_var, true_var, EPS_BP, EPS_LEN))
def testInsertionVariant(self): testVar = Variant(10,'A',['AAAA'],VARIANT_TYPE.INDEL_INS,GENOTYPE_TYPE.HET) self.assertEqual(testVar.gains,[3]) self.assertEqual(testVar.losses,[0]) self.assertFalse(testVar.overlaps_allele(9)) self.assertTrue(testVar.overlaps_allele(10)) self.assertFalse(testVar.overlaps_allele(11))
def testOverlapsVariant(self): snpVar = Variant(10,'A',['C'],VARIANT_TYPE.SNP,GENOTYPE_TYPE.HET) indelVar = Variant(7,'AAAAAAAA',['A'],VARIANT_TYPE.INDEL_DEL,GENOTYPE_TYPE.HET) self.assertTrue(snpVar.strictly_overlaps_var(indelVar)) self.assertTrue(indelVar.strictly_overlaps_var(snpVar)) snpVar2 = Variant(2,'C',['T'],VARIANT_TYPE.SNP,GENOTYPE_TYPE.HET) self.assertFalse(snpVar2.strictly_overlaps_var(indelVar)) self.assertFalse(indelVar.strictly_overlaps_var(snpVar2))
def testSnpVariant(self): testVar = Variant(10,'A',['C'],VARIANT_TYPE.SNP,GENOTYPE_TYPE.HET) self.assertEqual(testVar.gains,[0]) self.assertEqual(testVar.losses,[0])