def do_chunk(coords,ecount,args): bf = BAMFile(args.input,blockStart=coords[0],innerStart=coords[1]) results = [] for i in range(0,ecount): e = bf.read_entry() if e.is_aligned(): rng = e.get_target_range() results.append([rng.get_range_string(),e.get_aligned_bases_count()]) else: results.append(['',0]) return results
def do_chunk(ilines, infile, args): ilines = [x.rstrip().split("\t") for x in ilines] coord = [int(x) for x in ilines[0][2:4]] bf = BAMFile(infile, blockStart=coord[0], innerStart=coord[1]) results = [] for i in range(0, len(ilines)): flag = int(ilines[i][5]) e = bf.read_entry() #if not e: break #print {'qlen':e.get_original_query_length(),'alen':e.get_aligned_bases_count()} value = None if e.is_aligned(): tx = e.get_target_transcript(args.minimum_intron_size) value = { 'qrng': e.get_actual_original_query_range().get_range_string(), 'tx': tx.get_gpd_line(), 'flag': flag, 'qlen': e.get_original_query_length(), 'aligned_bases': e.get_aligned_bases_count() } results.append( e.value('qname') + "\t" + base64.b64encode(zlib.compress(pickle.dumps(value)))) #results.append([e.value('qname'),zlib.compress(pickle.dumps(value))]) else: value = { 'qrng': '', 'tx': '', 'flag': flag, 'qlen': e.get_original_query_length(), 'aligned_bases': 0 } results.append( e.value('qname') + "\t" + base64.b64encode(zlib.compress(pickle.dumps(value)))) #results.append([e.value('qname'),zlib.compress(pickle.dumps(value))]) return results