18
|
1 import unittest
|
|
2 from commons.core.parsing.VarscanToVCF import VarscanToVCF
|
|
3
|
|
4 class Test_VarscanToVCF(unittest.TestCase):
|
|
5
|
|
6 def setUp(self):
|
|
7 self._iVarscanToVCF = VarscanToVCF(doClean = True, verbosity = 2)
|
|
8
|
|
9 # def test_convertVarscanLineToVCFRecord(self):
|
|
10 ## Chrom Position Ref Cons Reads1 Reads2 VarFreq Strands1 Strands2 Qual1 Qual2 Pvalue
|
|
11 ## chr1 10 C Y 1 1 50% 1 1 68 69 0.49999999999999994
|
|
12 ## MapQual1 MapQual2 Reads1Plus Reads1Minus Reads2Plus Reads2Minus VarAllele
|
|
13 ## 1 1 1 0 1 0 T
|
|
14 # varscanLine = "chr1\t10\tC\tY\t1\t1\t50%\t1\t1\t68\t69\t0.49999999999999994\t1\t1\t1\t0\t1\t0\tT"
|
|
15 # obsRecord = self._iVarscanToVCF._convertVarscanLineToVCFRecord(varscanLine, 1)
|
|
16 #
|
|
17 # expInfo = {"AF": "50%",
|
|
18 # "DP": 2,
|
|
19 # "MQ": "1"}
|
|
20 #
|
|
21 # expRecord = vcf.model._Record("chr1", 10, "1", "C", "T", 3.010299957, ".", expInfo, ".", None)
|
|
22 ## CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO, FORMAT, sample_indexes, samples=None
|
|
23 #
|
|
24 # self.assertEqual(expRecord.ID, obsRecord.ID)
|
|
25 # self.assertEqual(expRecord.QUAL, obsRecord.QUAL)
|
|
26 # self.assertEqual(expRecord.FILTER, obsRecord.FILTER)
|
|
27 # self.assertEqual(expRecord.INFO, obsRecord.INFO)
|
|
28 # self.assertEqual(expRecord.FORMAT, obsRecord.FORMAT)
|
|
29 # self.assertEqual(expRecord, obsRecord)
|
|
30
|
|
31 def test_convertVarscanLineToVCFLine(self):
|
|
32 # Chrom Position Ref Cons Reads1 Reads2 VarFreq Strands1 Strands2 Qual1 Qual2 Pvalue
|
|
33 # chr1 10 C Y 1 1 50% 1 1 68 69 0.49999999999999994
|
|
34 # MapQual1 MapQual2 Reads1Plus Reads1Minus Reads2Plus Reads2Minus VarAllele
|
|
35 # 1 1 1 0 1 0 T
|
|
36 varscanLine = "chr1\t10\tC\tY\t1\t1\t50%\t1\t1\t68\t69\t0.49999999999999994\t1\t1\t1\t0\t1\t0\tT"
|
|
37 obsVCFLine = self._iVarscanToVCF._convertVarscanLineToVCFRecord(varscanLine, 1)
|
|
38
|
|
39 expVCFLine = "chr1\t10\t.\tC\tT\t3.010299957\t.\tAF=0.5000;DP=2;RBQ=68;ABQ=69\n"
|
|
40 # CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO
|
|
41 self.assertEqual(expVCFLine, obsVCFLine)
|
|
42
|
|
43 def test_convertVarscanLineToVCFLine_false_VarAllele(self):
|
|
44 varscanLine = "chr1\t10\tC\tY\t1\t1\t50%\t1\t1\t68\t69\t0.49999999999999994\t1\t1\t1\t0\t1\t0\tA"
|
|
45 obsVCFLine = self._iVarscanToVCF._convertVarscanLineToVCFRecord(varscanLine, 1)
|
|
46
|
|
47 expVCFLine = "chr1\t10\t.\tC\tT\t3.010299957\t.\tAF=0.5000;DP=2;RBQ=68;ABQ=69\n"
|
|
48 # CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO
|
|
49 self.assertEqual(expVCFLine, obsVCFLine)
|
|
50
|
|
51 def test_convertVarscanLineToVCFRecord_empty_line(self):
|
|
52 obsMsg = ""
|
|
53 try:
|
|
54 self._iVarscanToVCF._convertVarscanLineToVCFRecord("", 10)
|
|
55 except Exception as e:
|
|
56 obsMsg = e.msg
|
|
57
|
|
58 self.assertEqual("This varscan line (l.10) is not complete", obsMsg)
|
|
59
|
|
60 if __name__ == "__main__":
|
|
61 unittest.main() |