def test_addFilters(self): ds1 = DataSet() filt = Filters() filt.addRequirement(rq=[('>', '0.85')]) ds1.addFilters(filt) self.assertEquals(str(ds1.filters), '( rq > 0.85 )') # Or added from a source XML ds2 = DataSet(data.getXml(16)) self.assertTrue(str(ds2.filters).startswith('( rname = E.faecalis'))
def test_addFilters(self): ds1 = DataSet() filt = Filters() filt.addRequirement(rq=[('>', '0.85')]) ds1.addFilters(filt) assert str(ds1.filters) == '( rq > 0.85 )' # Or added from a source XML ds2 = DataSet(data.getXml(15)) assert str(ds2.filters).startswith('( rname = E.faecalis')
def test_setFilters(self): ds1 = DataSet() filt = Filters() filt.addRequirement(rq=[('>', '0.85')]) ds1.addFilters(filt) self.assertEquals(str(ds1.filters), '( rq > 0.85 )') # Or added from a source XML ds2 = DataSet() ds2.filters = ds1.filters self.assertEquals(str(ds2.filters), '( rq > 0.85 )')
def test_addFilters(self): ds1 = DataSet() filt = Filters() filt.addRequirement(rq=[('>', '0.85')]) ds1.addFilters(filt) self.assertEquals(str(ds1.filters), '( rq > 0.85 )') # Or added from a source XML ds2 = DataSet(data.getXml(16)) self.assertTrue(str(ds2.filters).startswith( '( rname = E.faecalis'))
def test_setFilters(self): ds1 = DataSet() filt = Filters() filt.addRequirement(rq=[('>', '0.85')]) ds1.addFilters(filt) self.assertEquals(str(ds1.filters), '( rq > 0.85 )') # Or added from a source XML ds2 = DataSet() ds2.filters = ds1.filters self.assertEquals(str(ds2.filters), '( rq > 0.85 )')
def filterXml(args): log.error("Adding filters via CLI is temporarily out of order") exit(1) if args.infile.endswith('xml'): dataSet = DataSet(args.infile, strict=args.strict) filters = [] separators = ['<=', '>=', '!=', '==', '>', '<', '='] for filt in args.filters: for sep in separators: if sep in filt: param, condition = filt.split(sep) condition = sep + condition filters[param] = condition break dataSet.addFilters([filters]) log.info("{i} filters added".format(i=len(filters))) dataSet.write(args.outfile) else: raise IOError("No files found/found to be compatible")
def filterXml(args): log.error("Adding filters via CLI is temporarily out of order") exit(1) if args.infile.endswith('xml'): dataSet = DataSet(args.infile, strict=args.strict) filters = [] separators = ['<=', '>=', '!=', '==', '>', '<', '='] for filt in args.filters: for sep in separators: if sep in filt: param, condition = filt.split(sep) condition = sep + condition filters[param] = condition break dataSet.addFilters([filters]) log.info("{i} filters added".format(i=len(filters))) dataSet.write(args.outfile) else: raise IOError("No files found/found to be compatible")
def test_reads_in_contig(self): log.info("Testing reads in contigs") ds = DataSet(data.getXml(8)) dss = ds.split(contigs=True) self.assertEqual(len(dss), 12) efaec1TimesFound = 0 efaec1TotFound = 0 efaec2TimesFound = 0 efaec2TotFound = 0 for ds in dss: ef1 = len(list(ds.readsInReference('E.faecalis.1'))) ef2 = len(list(ds.readsInReference('E.faecalis.2'))) if ef1: efaec1TimesFound += 1 efaec1TotFound += ef1 if ef2: efaec2TimesFound += 1 efaec2TotFound += ef2 self.assertEqual(efaec1TimesFound, 1) self.assertEqual(efaec1TotFound, 20) self.assertEqual(efaec2TimesFound, 1) self.assertEqual(efaec2TotFound, 3) ds = DataSet(data.getXml(8)) filt = Filters() filt.addRequirement(length=[('>', '100')]) ds.addFilters(filt) dss = ds.split(contigs=True) self.assertEqual(len(dss), 12) efaec1TimesFound = 0 efaec1TotFound = 0 efaec2TimesFound = 0 efaec2TotFound = 0 for ds in dss: ef1 = len(list(ds.readsInReference('E.faecalis.1'))) ef2 = len(list(ds.readsInReference('E.faecalis.2'))) if ef1: efaec1TimesFound += 1 efaec1TotFound += ef1 if ef2: efaec2TimesFound += 1 efaec2TotFound += ef2 self.assertEqual(efaec1TimesFound, 1) self.assertEqual(efaec1TotFound, 20) self.assertEqual(efaec2TimesFound, 1) self.assertEqual(efaec2TotFound, 3) ds = DataSet(data.getXml(8)) filt = Filters() filt.addRequirement(length=[('>', '1000')]) ds.addFilters(filt) dss = ds.split(contigs=True) self.assertEqual(len(dss), 9) efaec1TimesFound = 0 efaec1TotFound = 0 efaec2TimesFound = 0 efaec2TotFound = 0 for ds in dss: ef1 = len(list(ds.readsInReference('E.faecalis.1'))) ef2 = len(list(ds.readsInReference('E.faecalis.2'))) if ef1: efaec1TimesFound += 1 efaec1TotFound += ef1 if ef2: efaec2TimesFound += 1 efaec2TotFound += ef2 self.assertEqual(efaec1TimesFound, 1) self.assertEqual(efaec1TotFound, 20) self.assertEqual(efaec2TimesFound, 1) self.assertEqual(efaec2TotFound, 1)
def test_reads_in_contig(self): log.info("Testing reads in contigs") ds = DataSet(data.getXml(8)) dss = ds.split(contigs=True) self.assertEqual(len(dss), 12) efaec1TimesFound = 0 efaec1TotFound = 0 efaec2TimesFound = 0 efaec2TotFound = 0 for ds in dss: ef1 = len(list(ds.readsInReference('E.faecalis.1'))) ef2 = len(list(ds.readsInReference('E.faecalis.2'))) if ef1: efaec1TimesFound += 1 efaec1TotFound += ef1 if ef2: efaec2TimesFound += 1 efaec2TotFound += ef2 self.assertEqual(efaec1TimesFound, 1) self.assertEqual(efaec1TotFound, 20) self.assertEqual(efaec2TimesFound, 1) self.assertEqual(efaec2TotFound, 3) ds = DataSet(data.getXml(8)) filt = Filters() filt.addRequirement(length=[('>', '100')]) ds.addFilters(filt) dss = ds.split(contigs=True) self.assertEqual(len(dss), 12) efaec1TimesFound = 0 efaec1TotFound = 0 efaec2TimesFound = 0 efaec2TotFound = 0 for ds in dss: ef1 = len(list(ds.readsInReference('E.faecalis.1'))) ef2 = len(list(ds.readsInReference('E.faecalis.2'))) if ef1: efaec1TimesFound += 1 efaec1TotFound += ef1 if ef2: efaec2TimesFound += 1 efaec2TotFound += ef2 self.assertEqual(efaec1TimesFound, 1) self.assertEqual(efaec1TotFound, 20) self.assertEqual(efaec2TimesFound, 1) self.assertEqual(efaec2TotFound, 3) ds = DataSet(data.getXml(8)) filt = Filters() filt.addRequirement(length=[('>', '1000')]) ds.addFilters(filt) dss = ds.split(contigs=True) self.assertEqual(len(dss), 9) efaec1TimesFound = 0 efaec1TotFound = 0 efaec2TimesFound = 0 efaec2TotFound = 0 for ds in dss: ef1 = len(list(ds.readsInReference('E.faecalis.1'))) ef2 = len(list(ds.readsInReference('E.faecalis.2'))) if ef1: efaec1TimesFound += 1 efaec1TotFound += ef1 if ef2: efaec2TimesFound += 1 efaec2TotFound += ef2 self.assertEqual(efaec1TimesFound, 1) self.assertEqual(efaec1TotFound, 20) self.assertEqual(efaec2TimesFound, 1) self.assertEqual(efaec2TotFound, 1)