14 type pipelineSuite struct{}
16 var _ = check.Suite(&pipelineSuite{})
18 func (s *pipelineSuite) TestImport(c *check.C) {
19 for _, infile := range []string{
20 "testdata/pipeline1/",
23 c.Logf("TestImport: %s", infile)
26 statsin, importout := io.Pipe()
30 code := (&importer{}).RunCommand("lightning import", []string{"-local=true", "-skip-ooo=true", "-output-tiles", "-tag-library", "testdata/tags", infile}, bytes.NewReader(nil), importout, os.Stderr)
31 c.Check(code, check.Equals, 0)
34 statsout := &bytes.Buffer{}
38 code := (&statscmd{}).RunCommand("lightning stats", []string{"-local"}, statsin, statsout, os.Stderr)
39 c.Check(code, check.Equals, 0)
42 c.Logf("%s", statsout.String())
46 func (s *pipelineSuite) TestImportMerge(c *check.C) {
47 libfile := make([]string, 2)
51 for i, infile := range []string{
53 "testdata/pipeline1/",
55 i, infile := i, infile
56 c.Logf("TestImportMerge: %s", infile)
57 libfile[i] = fmt.Sprintf("%s/%d.gob", tmpdir, i)
61 args := []string{"-local=true", "-o=" + libfile[i], "-skip-ooo=true", "-output-tiles", "-tag-library", "testdata/tags"}
64 args = append(args, "-include-no-calls")
66 args = append(args, infile)
67 code := (&importer{}).RunCommand("lightning import", args, bytes.NewReader(nil), &bytes.Buffer{}, os.Stderr)
68 c.Check(code, check.Equals, 0)
73 merged := &bytes.Buffer{}
74 code := (&merger{}).RunCommand("lightning merge", []string{"-local", libfile[0], libfile[1]}, bytes.NewReader(nil), merged, os.Stderr)
75 c.Check(code, check.Equals, 0)
76 c.Logf("len(merged) %d", merged.Len())
78 statsout := &bytes.Buffer{}
79 code = (&statscmd{}).RunCommand("lightning stats", []string{"-local"}, bytes.NewReader(merged.Bytes()), statsout, os.Stderr)
80 c.Check(code, check.Equals, 0)
81 c.Check(statsout.Len() > 0, check.Equals, true)
82 c.Logf("%s", statsout.String())
84 c.Check(ioutil.WriteFile(tmpdir+"/merged.gob", merged.Bytes(), 0666), check.IsNil)
86 hgvsout := &bytes.Buffer{}
87 code = (&exporter{}).RunCommand("lightning export", []string{"-local", "-ref", "testdata/ref.fasta", "-output-format", "hgvs", "-i", tmpdir + "/merged.gob"}, bytes.NewReader(nil), hgvsout, os.Stderr)
88 c.Check(code, check.Equals, 0)
89 c.Check(hgvsout.Len() > 0, check.Equals, true)
90 c.Logf("%s", hgvsout.String())
91 c.Check(hgvsout.String(), check.Equals, `chr1:g.1_3delinsGGC .
92 chr1:g.[41_42delinsAA];[41=] .
93 chr1:g.[161=];[161A>T] .
94 chr1:g.[178=];[178A>T] .
96 chr1:g.[302=];[302_305delinsAAAA] .
97 . chr2:g.[1=];[1_3delinsAAA]
98 . chr2:g.125_127delinsAAA
99 chr2:g.[241_254del];[241=] .
100 chr2:g.[258_269delinsAA];[258=] .
101 chr2:g.[315C>A];[315=] .
102 chr2:g.[470_472del];[470=] .
103 chr2:g.[471=];[471_472delinsAA] .
106 vcfout := &bytes.Buffer{}
107 code = (&exporter{}).RunCommand("lightning export", []string{"-local", "-ref", "testdata/ref.fasta", "-output-format", "vcf", "-i", tmpdir + "/merged.gob", "-output-bed", tmpdir + "/export.bed"}, bytes.NewReader(nil), vcfout, os.Stderr)
108 c.Check(code, check.Equals, 0)
109 c.Check(vcfout.Len() > 0, check.Equals, true)
110 c.Logf("%s", vcfout.String())
111 c.Check(vcfout.String(), check.Equals, `chr1 1 NNN GGC 1/1 0/0
112 chr1 41 TT AA 1/0 0/0
115 chr1 221 TCCA T 1/1 0/0
116 chr1 302 TTTT AAAA 0/1 0/0
117 chr2 1 TTT AAA 0/0 0/1
118 chr2 125 CTT AAA 0/0 1/1
119 chr2 240 ATTTTTCTTGCTCTC A 1/0 0/0
120 chr2 258 CCTTGTATTTTT AA 1/0 0/0
122 chr2 469 GTGG G 1/0 0/0
123 chr2 471 GG AA 0/1 0/0
125 bedout, err := ioutil.ReadFile(tmpdir + "/export.bed")
126 c.Check(err, check.IsNil)
127 c.Logf("%s", string(bedout))
128 c.Check(string(bedout), check.Equals, `chr1 0 248 0 500 . 0 224
129 chr1 224 372 1 1000 . 248 348
130 chr1 348 496 2 1000 . 372 472
131 chr1 472 572 3 1000 . 496 572
132 chr2 0 248 4 1000 . 0 224
133 chr2 224 372 5 750 . 248 348
134 chr2 348 496 6 1000 . 372 472
135 chr2 472 572 7 1000 . 496 572