def test_combine(self): # Complement fields = ['chr','start','end','name','strand','score'] s1 = fstream([('chr',0,20,'a1',1,6.),('chr',40,60,'b',1,3.)], fields=fields) s2 = fstream([('chr',0,20,'a1',1,6.),('chr',40,60,'b',1,3.)], fields=fields) res = list(combine([s1,s2],fn=lambda x:not any(x))) expected = [('chr',20,40,'0','0','0')] self.assertListEqual(res,expected)
def test_combine(self): # Complement fields = ['chr', 'start', 'end', 'name', 'strand', 'score'] s1 = fstream([('chr', 0, 20, 'a1', 1, 6.), ('chr', 40, 60, 'b', 1, 3.)], fields=fields) s2 = fstream([('chr', 0, 20, 'a1', 1, 6.), ('chr', 40, 60, 'b', 1, 3.)], fields=fields) res = list(combine([s1, s2], fn=lambda x: not any(x))) expected = [('chr', 20, 40, '0', '0', '0')] self.assertListEqual(res, expected)
def _combine(func,output,**kw): chrmeta = _get_chrmeta(**kw) format = kw.get('format') or 'sql' output += format tracks = kw['TrackMulti']['tracks'] if not isinstance(tracks, list): tracks = [tracks] tracks = [track(sig, chrmeta=chrmeta) for sig in tracks] chrmeta = tracks[0].chrmeta tout = track(output, chrmeta=chrmeta, info={'datatype': 'qualitative'}) for chrom in chrmeta: trackList = [sig.read(chrom) for sig in tracks] res = combine(trackList, fn=func) tout.fields = res.fields tout.write(res, chrom=chrom, clip=True) tout.close() return output
def _combine(func, output, **kw): chrmeta = _get_chrmeta(**kw) format = kw.get('format') or 'sql' output += format tracks = kw['TrackMulti']['tracks'] if not isinstance(tracks, list): tracks = [tracks] tracks = [track(sig, chrmeta=chrmeta) for sig in tracks] chrmeta = tracks[0].chrmeta tout = track(output, chrmeta=chrmeta, info={'datatype': 'qualitative'}) for chrom in chrmeta: trackList = [sig.read(chrom) for sig in tracks] res = combine(trackList, fn=func) tout.fields = res.fields tout.write(res, chrom=chrom, clip=True) tout.close() return output