2 """More direct synthetic test cases for the eland output file processing
5 from StringIO import StringIO
10 from htsworkflow.pipelines.runfolder import ElementTree
11 from htsworkflow.pipelines import genomemap
13 class TestGenomeMap(unittest.TestCase):
14 def test_genomesizes_xml(self):
15 xml = ElementTree.fromstring("""<sequenceSizes>
16 <chromosome fileName="chr2.fa" contigName="chr2" totalBases="181748087"/>
17 <chromosome fileName="chr1.fa" contigName="chr1" totalBases="197195432"/>
20 g = genomemap.GenomeMap()
21 g.build_map_from_element(xml)
23 self.assertTrue('chr1.fa' in g)
24 self.assertEqual(g['chr1.fa'], 'mm9/chr1.fa')
26 def test_simulated_genome_dir(self):
27 vlds = [genomemap.vldInfo('chr1.fa.vld', False),
28 genomemap.vldInfo('chr2.fa.vld', False),
29 genomemap.vldInfo('chr3.fa.vld', False),
30 genomemap.vldInfo('Lambda.fa.vld', True),]
32 g = genomemap.GenomeMap()
33 g.build_map_from_dir('mm9', vlds)
35 self.assertTrue('chr1.fa' in g)
36 self.assertEqual(len(g), 4)
37 self.assertEqual(g['chr1.fa'], 'mm9/chr1.fa')
38 self.assertEqual(g['Lambda.fa'], 'Lambda.fa')
40 def test_genome_dir(self):
41 g = genomemap.GenomeMap()
42 names = ['chr1', 'chr2', 'chr3']
45 tempdir = tempfile.mkdtemp(prefix='tmp_mm9')
47 name = os.path.join(tempdir, base + '.fa.vld')
48 stream = open(name, 'w')
51 g.scan_genome_dir(tempdir)
53 if tempdir is not None:
54 shutil.rmtree(tempdir)
56 temppath, tempgenome = os.path.split(tempdir)
57 self.assertTrue('chr1.fa' in g)
58 self.assertEqual(len(g), 3)
59 self.assertEqual(g['chr1.fa'], '{0}/chr1.fa'.format(tempgenome))
60 if __name__ == "__main__":